﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Threading;
//using System.Web.Http;
//using System.Xml;
//using Common.Logging;
//using In.Api.Dto.HisWs;
//using In.Api.Helpers;
//using InDbContext;
//using Newtonsoft.Json;
//using In.Api.Dto.YBWs;
//using In.Api.Dto.LisWs;

//namespace In.Api.Controllers
//{
//    //public class HisWsController : ApiController
//    //{
//    //    private static readonly ILog Logger = LogManager.GetLogger(typeof(HisWsController));
//    //    private static readonly string CompanyCode = "GDBKYZ";
//    //    private static readonly string HospitalId = "1036";
//    //    private static readonly string OrderType = "11";
//    //    private static readonly string PayModel = "99";
//    //    private static readonly string OpeartorId = "00WXGH";
//    //    private static readonly object MessageLocker = new object();
        
//    //    //获取唯一信息ID
//    //    private string GetMessageId()
//    //    {
//    //        var messageId = "BK" + DateTime.Now.Date.ToString("yyyyMMdd");
//    //        lock (MessageLocker)
//    //        {
//    //            messageId += (DateTime.Now - DateTime.Now.Date).TotalMilliseconds.ToString("00000000");
//    //            Thread.Sleep(1);
//    //        }

//    //        return messageId;
//    //    }
//    //    //生成xmlDoc
//    //    private XmlDocument GetMessageDoc(string interfaceCode)
//    //    {
//    //        var xmlDoc = new XmlDocument();
//    //        XmlNode root = xmlDoc.CreateElement("message");

//    //        XmlNode headNode = xmlDoc.CreateElement("head");
//    //        //headNode.InnerText = interfaceCode;
//    //        root.AppendChild(headNode);

//    //        XmlNode interfaceCodeNode = xmlDoc.CreateElement("InterfaceCode");
//    //        interfaceCodeNode.InnerText = interfaceCode;
//    //        headNode.AppendChild(interfaceCodeNode);

//    //        XmlNode companyCodeNode = xmlDoc.CreateElement("CompanyCode");
//    //        companyCodeNode.InnerText = CompanyCode;
//    //        headNode.AppendChild(companyCodeNode);

//    //        XmlNode messageIdNode = xmlDoc.CreateElement("MessageID");
//    //        messageIdNode.InnerText = GetMessageId();
//    //        headNode.AppendChild(messageIdNode);

//    //        xmlDoc.AppendChild(root);
//    //        return xmlDoc;
//    //    }
//    //    /// <summary>
//    //    /// 获取预约科室信息        
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("GetAppointDeptInfo")]
//    //    public GetDeptInfoResponse GetAppointDeptInfo(GetDeptInfoRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("appointment.getDeptInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode deptTypeNode = xmlDoc.CreateElement("deptType");
//    //        deptTypeNode.InnerText = request.DeptType;
//    //        root.AppendChild(deptTypeNode);

//    //        XmlNode deptIdNode = xmlDoc.CreateElement("deptId");
//    //        deptIdNode.InnerText = request.DeptId;
//    //        root.AppendChild(deptIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;
//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetAppointDeptInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));

//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetAppointDeptInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetDeptInfoResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.DeptList = new List<GetDeptInfoResponse.DeptInfo>();

//    //        var nodes = xmlDoc.SelectNodes("/message/res/deptInfo");
//    //        if (nodes != null)
//    //        {
//    //            foreach (XmlNode xNode in nodes)
//    //            {
//    //                var deptObj = new GetDeptInfoResponse.DeptInfo();
//    //                var deptName = xNode.SelectSingleNode("deptName")?.InnerText ?? "";

//    //                var deptId = xNode.SelectSingleNode("deptId")?.InnerText ?? "";
//    //                var parentId = xNode.SelectSingleNode("parentId")?.InnerText ?? "";
//    //                var desc = xNode.SelectSingleNode("description")?.InnerText ?? "";

//    //                deptObj.DeptId = deptId;
//    //                deptObj.DeptName = deptName;
//    //                deptObj.ParentId = parentId;
//    //                deptObj.Desc = desc;

//    //                response.DeptList.Add(deptObj);
//    //            }
//    //        }
//    //        return response;
//    //    }
//    //    /// <summary>
//    //    /// 获取门诊科室信息        
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("GetRegisterDeptInfo")]
//    //    public GetDeptInfoResponse GetRegisterDeptInfo(GetDeptInfoRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("register.getDeptInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode deptTypeNode = xmlDoc.CreateElement("deptType");
//    //        deptTypeNode.InnerText = request.DeptType;
//    //        root.AppendChild(deptTypeNode);

//    //        XmlNode deptIdNode = xmlDoc.CreateElement("deptId");
//    //        deptIdNode.InnerText = request.DeptId;
//    //        root.AppendChild(deptIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;
//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetRegisterDeptInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));

//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetRegisterDeptInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetDeptInfoResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.DeptList = new List<GetDeptInfoResponse.DeptInfo>();

//    //        var nodes = xmlDoc.SelectNodes("/message/res/deptInfo");
//    //        if (nodes != null)
//    //        {
//    //            foreach (XmlNode xNode in nodes)
//    //            {
//    //                var deptObj = new GetDeptInfoResponse.DeptInfo();
//    //                var deptName = xNode.SelectSingleNode("deptName")?.InnerText ?? "";

//    //                var deptId = xNode.SelectSingleNode("deptId")?.InnerText ?? "";
//    //                var parentId = xNode.SelectSingleNode("parentId")?.InnerText ?? "";
//    //                var desc = xNode.SelectSingleNode("description")?.InnerText ?? "";

//    //                deptObj.DeptId = deptId;
//    //                deptObj.DeptName = deptName;
//    //                deptObj.ParentId = parentId;
//    //                deptObj.Desc = desc;

//    //                response.DeptList.Add(deptObj);
//    //            }
//    //        }
//    //        return response;
//    //    }
//    //    /// <summary>
//    //    /// 获取医生信息
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("GetDoctorInfo")]
//    //    public GetDoctorInfoResponse GetDoctorInfo(GetDoctorInfoRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("hospital.getDoctorInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode deptIdNode = xmlDoc.CreateElement("deptId");
//    //        deptIdNode.InnerText = request.DeptId;
//    //        root.AppendChild(deptIdNode);

//    //        XmlNode doctorIdNode = xmlDoc.CreateElement("doctorId");
//    //        doctorIdNode.InnerText = request.DoctorId;
//    //        root.AppendChild(doctorIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 getDoctorInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("getDoctorInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetDoctorInfoResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.DoctorList = new List<GetDoctorInfoResponse.DoctorInfo>();
//    //        var nodes = xmlDoc.SelectNodes("/message/res/doctorInfo");
//    //        if (nodes != null)
//    //        {
//    //            foreach (XmlNode xNode in nodes)
//    //            {
//    //                var doctorInfoObj = new GetDoctorInfoResponse.DoctorInfo();
//    //                var doctorId = xNode.SelectSingleNode("doctorId")?.InnerText ?? "";
//    //                var doctorName = xNode.SelectSingleNode("doctorName")?.InnerText ?? "";
//    //                var deptId = xNode.SelectSingleNode("deptId")?.InnerText ?? "";
//    //                var title = xNode.SelectSingleNode("doctorLevel")?.InnerText ?? "";
//    //                var titleCode= xNode.SelectSingleNode("doctorLevelCode")?.InnerText ?? "";
//    //                var deptName = xNode.SelectSingleNode("deptName")?.InnerText ?? "";
//    //                var desc = xNode.SelectSingleNode("description")?.InnerText ?? "";

//    //                doctorInfoObj.DoctorId = doctorId;
//    //                doctorInfoObj.DoctorName = doctorName;
//    //                doctorInfoObj.DeptId = deptId;
//    //                doctorInfoObj.Title = title;
//    //                doctorInfoObj.TitleCode = titleCode;
//    //                doctorInfoObj.DeptName = deptName;
//    //                doctorInfoObj.Desc = desc;

//    //                response.DoctorList.Add(doctorInfoObj);
//    //            }
//    //        }

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 获取患者信息 idCardNo、healthCardNo、patientId不能同时为空。
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("GetPatientInfo")]
//    //    public GetPatientInfoResponse GetPatientInfo(GetPatientInfoRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("baseinfo.getOutpatientInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode idCardNoNode = xmlDoc.CreateElement("idCardNo");
//    //        idCardNoNode.InnerText = request.IdCardNo;
//    //        root.AppendChild(idCardNoNode);

//    //        XmlNode healthCardNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNode.InnerText = request.CardNo;
//    //        root.AppendChild(healthCardNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        XmlNode patientNameNode = xmlDoc.CreateElement("patientName");
//    //        patientNameNode.InnerText = request.PatientName;
//    //        root.AppendChild(patientNameNode);

//    //        XmlNode guardianNameNode = xmlDoc.CreateElement("guardianName");
//    //        guardianNameNode.InnerText = request.GuardianName;
//    //        root.AppendChild(guardianNameNode);

//    //        XmlNode guardianIdCardNoNode = xmlDoc.CreateElement("guardianIdCardNo");
//    //        guardianIdCardNoNode.InnerText = request.GuardianIdCardNo;
//    //        root.AppendChild(guardianIdCardNoNode);

//    //        XmlNode phoneNode = xmlDoc.CreateElement("phone");
//    //        phoneNode.InnerText = request.Phone;
//    //        root.AppendChild(phoneNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 getpatientInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("getpatientInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetPatientInfoResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;

//    //        var patientId = xmlDoc.SelectSingleNode("/message/res/patientId")?.InnerText ?? "";
//    //        var oppatNo = xmlDoc.SelectSingleNode("/message/res/oppatNo")?.InnerText ?? "";
//    //        var name = xmlDoc.SelectSingleNode("/message/res/patientName")?.InnerText ?? "";
//    //        var gender = xmlDoc.SelectSingleNode("/message/res/gender")?.InnerText ?? "";
//    //        var birthDate = xmlDoc.SelectSingleNode("/message/res/birthday")?.InnerText ?? "";
//    //        var idenNo = xmlDoc.SelectSingleNode("/message/res/idCardNo")?.InnerText ?? "";
//    //        var phone = xmlDoc.SelectSingleNode("/message/res/phone")?.InnerText ?? "";
//    //        var healthCardNo = xmlDoc.SelectSingleNode("/message/res/healthCardNo")?.InnerText ?? "";
//    //        var medicareCardNo = xmlDoc.SelectSingleNode("/message/res/medicareCardNo")?.InnerText ?? "";


//    //        response.PatientId = patientId;
//    //        response.InDeptNo = oppatNo;
//    //        response.Name = name;
//    //        response.Gender = gender == "F" ? "女" : gender == "M" ? "男" : "其他";
//    //        response.Birthdate = birthDate;
//    //        response.IdenNo = idenNo;
//    //        response.Phone = phone;
//    //        response.HealthCardNo = healthCardNo;
//    //        response.MedicareCardNo = medicareCardNo;

//    //        //在前置机HospDatabase数据库HospCard加入患者就诊卡，用于在通知功能筛选患者
//    //        //using (var ctx = new HospDatabaseEntity())
//    //        //{
//    //        //    var patient = ctx.HospCards.FirstOrDefault(card => card.PatientId == patientId);
//    //        //    if (patient.IsNull())
//    //        //    {
//    //        //        var card = new HospCard();
//    //        //        card.PatientId = patientId;
//    //        //        card.Name = name;
//    //        //        card.CardNo = request.CardNo;
//    //        //        card.CardType = request.CardType;
//    //        //        ctx.HospCards.Add(card);
//    //        //        ctx.SaveChanges();
//    //        //    }
//    //        //}
//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 创建虚拟就诊卡        
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("CreateCard")]
//    //    public CreateCardResponse CreateCard(CreateCardRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("user.createNewPatient");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode idenNo = xmlDoc.CreateElement("idCardNo");
//    //        idenNo.InnerText = request.IdenNo;
//    //        root.AppendChild(idenNo);

//    //        XmlNode nameNode = xmlDoc.CreateElement("patientName");
//    //        nameNode.InnerText = request.Name;
//    //        root.AppendChild(nameNode);

//    //        XmlNode genderNode = xmlDoc.CreateElement("gender");
//    //        genderNode.InnerText = request.Gender;
//    //        root.AppendChild(genderNode);

//    //        XmlNode birthNode = xmlDoc.CreateElement("birthday");
//    //        birthNode.InnerText = request.Birthdate;
//    //        root.AppendChild(birthNode);

//    //        XmlNode phoneNode = xmlDoc.CreateElement("phone");
//    //        phoneNode.InnerText = request.Phone;
//    //        root.AppendChild(phoneNode);

//    //        XmlNode addressNode = xmlDoc.CreateElement("address");
//    //        addressNode.InnerText = request.Address;
//    //        root.AppendChild(addressNode);

//    //        XmlNode contractPersonNode = xmlDoc.CreateElement("contractPerson");
//    //        contractPersonNode.InnerText = request.Address;
//    //        root.AppendChild(contractPersonNode);

//    //        XmlNode contractPersonPhoneNode = xmlDoc.CreateElement("contractPersonPhone");
//    //        contractPersonPhoneNode.InnerText = request.Address;
//    //        root.AppendChild(contractPersonPhoneNode);

//    //        XmlNode remarkNode = xmlDoc.CreateElement("remark");
//    //        remarkNode.InnerText = request.Address;
//    //        root.AppendChild(remarkNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 CreateCard 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("CreateCard", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new CreateCardResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;               
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;

//    //        node = xmlDoc.SelectSingleNode("/message/res/healthCardNo");
//    //        var cardNo = node?.InnerText ?? "";
//    //        response.CardNo = cardNo;

//    //        node = xmlDoc.SelectSingleNode("/message/res/oppatNo");
//    //        var oppatNo = node?.InnerText ?? "";
//    //        response.OppatNo = oppatNo;

//    //        node = xmlDoc.SelectSingleNode("/message/res/patientId");
//    //        var patientId = node?.InnerText ?? "";
//    //        response.PatientId = patientId;
            
//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 绑定虚拟就诊卡        
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("AddBindingCard")]
//    //    public AddBindingCardResponse AddBindingCard(AddBindingCardRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("user.binding");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode idenNo = xmlDoc.CreateElement("idCardNo");
//    //        idenNo.InnerText = request.IdCardNo;
//    //        root.AppendChild(idenNo);

//    //        XmlNode nameNode = xmlDoc.CreateElement("patientName");
//    //        nameNode.InnerText = request.PatientName;
//    //        root.AppendChild(nameNode);

//    //        XmlNode genderNode = xmlDoc.CreateElement("gender");
//    //        genderNode.InnerText = request.Gender;
//    //        root.AppendChild(genderNode);

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode phoneNode = xmlDoc.CreateElement("phone");
//    //        phoneNode.InnerText = request.Phone;
//    //        root.AppendChild(phoneNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 AddBindingCard 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("AddBindingCard", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new AddBindingCardResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 接触绑定虚拟就诊卡        
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("UnBindingCard")]
//    //    public UnBindingCardResponse UnBindingCard(UnBindingCardRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("user.unBinding");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 UnBindingCard 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("UnBindingCard", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new UnBindingCardResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 通过本接口查询患者在医院所办理的卡信息
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetCardInfo")]
//    //    public GetCardInfoResponse GetCardInfo(GetCardInfoRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("user.getCardInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode idCardNoNode = xmlDoc.CreateElement("idCardNo");
//    //        idCardNoNode.InnerText = request.IdCardNo;
//    //        root.AppendChild(idCardNoNode);

//    //        XmlNode phoneNode = xmlDoc.CreateElement("phone");
//    //        phoneNode.InnerText = request.Phone;
//    //        root.AppendChild(phoneNode);

//    //        XmlNode patientNameNode = xmlDoc.CreateElement("patientName");
//    //        patientNameNode.InnerText = request.PatientName;
//    //        root.AppendChild(patientNameNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetCardInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetCardInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetCardInfoResponse();
//    //        response.Cards = new List<GetCardInfoResponse.CardInfo>();
//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        if (resultCode == "0")
//    //        {
//    //            var nodes = xmlDoc.SelectNodes("/message/res/cardInfo");
//    //            if (nodes != null)
//    //            {
//    //                foreach (XmlNode xNode in nodes)
//    //                {
//    //                    GetCardInfoResponse.CardInfo cardInfo = new GetCardInfoResponse.CardInfo
//    //                    {
//    //                        CardName = xNode.SelectSingleNode("cardName")?.InnerText ?? "",
//    //                        CardNo = xNode.SelectSingleNode("cardNo")?.InnerText ?? "",
//    //                        CreateDate = xNode.SelectSingleNode("createDate")?.InnerText ?? ""
//    //                    };
//    //                    response.Cards.Add(cardInfo);
//    //                }
//    //            }
//    //        }
//    //        return response;

//    //    }

//    //    /// <summary>
//    //    /// 获取排班信息
//    //    /// 通过本接口获取获取某个医生在某个日期范围内的排班信息以及号源信息。如果传入searchCode，则优先使用searchCode进行搜索；如果searchCode为空，则deptId和doctorId都需要传入。
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("GetAppointScheduleInfo")]
//    //    public GetScheduleInfoResponse GetAppointScheduleInfo(GetScheduleInfoRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("appointment.getScheduleInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");


//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode deptIdNode = xmlDoc.CreateElement("deptId");
//    //        deptIdNode.InnerText = request.DeptId;
//    //        root.AppendChild(deptIdNode);

//    //        XmlNode deptTypeNode = xmlDoc.CreateElement("deptType");
//    //        deptTypeNode.InnerText = request.DeptType;
//    //        root.AppendChild(deptTypeNode);

//    //        XmlNode doctorIdNode = xmlDoc.CreateElement("doctorId");
//    //        doctorIdNode.InnerText = request.DoctorId;
//    //        root.AppendChild(doctorIdNode);

//    //        XmlNode searchCodeNode = xmlDoc.CreateElement("searchCode");
//    //        searchCodeNode.InnerText = request.SearchCode;
//    //        root.AppendChild(searchCodeNode);

//    //        XmlNode beginDateNode = xmlDoc.CreateElement("startDate");
//    //        beginDateNode.InnerText = request.BeginDate;
//    //        root.AppendChild(beginDateNode);

//    //        XmlNode endDateNode = xmlDoc.CreateElement("endDate");
//    //        endDateNode.InnerText = request.EndDate;
//    //        root.AppendChild(endDateNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetAppointScheduleInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetAppointScheduleInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetScheduleInfoResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.RegList = new List<GetScheduleInfoResponse.RegInfo>();
//    //        var xNodes = xmlDoc.SelectNodes("/message/res/regInfo");
//    //        if (xNodes != null)
//    //        {
//    //            foreach (XmlNode xNode in xNodes)
//    //            {
//    //                GetScheduleInfoResponse.RegInfo regInfo = new GetScheduleInfoResponse.RegInfo();
//    //                regInfo.ScheduleList = new List<GetScheduleInfoResponse.ScheduleInfo>();
//    //                var doctorId = xNode.SelectSingleNode("doctorId")?.InnerText ?? "";
//    //                var doctorName = xNode.SelectSingleNode("doctorName")?.InnerText ?? "";
//    //                var doctorLevelCode = xNode.SelectSingleNode("doctorLevelCode")?.InnerText ?? "";
//    //                var doctorLevel = xNode.SelectSingleNode("doctorLevel")?.InnerText ?? "";
//    //                var description = xNode.SelectSingleNode("description")?.InnerText ?? "";
//    //                regInfo.DoctorId = doctorId;
//    //                regInfo.DoctorName = doctorName;
//    //                regInfo.DoctorLevel = doctorLevel;
//    //                regInfo.DoctorLevelCode = doctorLevelCode;
//    //                regInfo.Description = description;

//    //                var scheculeNodes = xNode.SelectNodes("scheduleInfo");
//    //                //var scheculeNodes = xmlDoc.SelectNodes("/message/res/regInfo/scheduleInfo");
//    //                if (scheculeNodes != null)
//    //                    foreach (XmlNode scheculeNode in scheculeNodes)
//    //                    {
//    //                        var deptId = scheculeNode.SelectSingleNode("deptId")?.InnerText ?? "";
//    //                        var deptName = scheculeNode.SelectSingleNode("deptName")?.InnerText ?? "";
//    //                        var clinicUnitName = scheculeNode.SelectSingleNode("clinicUnitName")?.InnerText ?? "";
//    //                        var clinicUnitId = scheculeNode.SelectSingleNode("clinicUnitId")?.InnerText ?? "";
//    //                        var regDate = scheculeNode.SelectSingleNode("regDate")?.InnerText ?? "";
//    //                        var shiftCode = scheculeNode.SelectSingleNode("shiftCode")?.InnerText ?? "";
//    //                        var shiftName = scheculeNode.SelectSingleNode("shiftName")?.InnerText ?? "";
//    //                        var startTime = scheculeNode.SelectSingleNode("startTime")?.InnerText ?? "";
//    //                        var endTime = scheculeNode.SelectSingleNode("endTime")?.InnerText ?? "";
//    //                        var scheduleId = scheculeNode.SelectSingleNode("scheduleId")?.InnerText ?? "";
//    //                        var regStatus = scheculeNode.SelectSingleNode("regStatus")?.InnerText ?? "";
//    //                        var totalCount = scheculeNode.SelectSingleNode("regTotalCount")?.InnerText ?? "";
//    //                        var leaveCount = scheculeNode.SelectSingleNode("regLeaveCount")?.InnerText ?? "";
//    //                        var regFee = scheculeNode.SelectSingleNode("regFee")?.InnerText ?? "";
//    //                        var treatFee = scheculeNode.SelectSingleNode("treatFee")?.InnerText ?? "";
//    //                        var isTimeReg = scheculeNode.SelectSingleNode("isTimeReg")?.InnerText ?? "";
//    //                        var regType = scheculeNode.SelectSingleNode("regLevel")?.InnerText ?? "";
//    //                        // 已经停诊,暂未开放的排班不显示
//    //                        if (regStatus != "1" )
//    //                        {
//    //                            continue;
//    //                        }

//    //                        // 已经结束的排班不显示
//    //                        if (string.CompareOrdinal(regDate, DateTime.Now.ToString("yyyy-MM-dd")) < 0
//    //                            ||
//    //                            (string.CompareOrdinal(regDate, DateTime.Now.ToString("yyyy-MM-dd")) == 0
//    //                             && string.CompareOrdinal(endTime, DateTime.Now.ToString("HH:mm")) <= 0))
//    //                        {
//    //                            //continue;
//    //                            totalCount = "1";
//    //                            leaveCount = "0";
//    //                        }

//    //                        var scheduleObj = new GetScheduleInfoResponse.ScheduleInfo();
//    //                        scheduleObj.DeptId = deptId;
//    //                        scheduleObj.DeptName = deptName;
//    //                        scheduleObj.RegDate = regDate;
//    //                        scheduleObj.ScheduleId = scheduleId;
//    //                        scheduleObj.ClinicUnitId = clinicUnitId;
//    //                        scheduleObj.ClinicUnitName = clinicUnitName;
//    //                        scheduleObj.RegStatus = regStatus;
//    //                        scheduleObj.ShiftCode = shiftCode;
//    //                        scheduleObj.TimeSlice = shiftName;
//    //                        scheduleObj.StartTime = startTime;
//    //                        scheduleObj.EndTime = endTime;
//    //                        scheduleObj.TotalCount = totalCount;
//    //                        scheduleObj.LeaveCount = leaveCount;
//    //                        scheduleObj.IsTimeFlag = isTimeReg;
//    //                        scheduleObj.Fee = regFee;
//    //                        scheduleObj.TreatFee = treatFee;
//    //                        scheduleObj.IsTimeFlag = isTimeReg;
//    //                        scheduleObj.RegType = regType;

//    //                        regInfo.ScheduleList.Add(scheduleObj);
//    //                    }
//    //                regInfo.ScheduleList.Sort(new ScheduleInfoComparer());
//    //                response.RegList.Add(regInfo);
//    //            }
//    //        }
//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 获取排班信息
//    //    /// 通过本接口获取获取某个医生在当天的排班信息以及号源信息。如果传入searchCode，则优先使用searchCode进行搜索；如果searchCode为空，则deptId和doctorId都需要传入。
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("GetRegsiterScheduleInfo")]
//    //    public GetScheduleInfoResponse GetRegsiterScheduleInfo(GetScheduleInfoRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("register.getScheduleInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");


//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode deptIdNode = xmlDoc.CreateElement("deptId");
//    //        deptIdNode.InnerText = request.DeptId;
//    //        root.AppendChild(deptIdNode);

//    //        XmlNode deptTypeNode = xmlDoc.CreateElement("deptType");
//    //        deptTypeNode.InnerText = request.DeptType;
//    //        root.AppendChild(deptTypeNode);

//    //        XmlNode doctorIdNode = xmlDoc.CreateElement("doctorId");
//    //        doctorIdNode.InnerText = request.DoctorId;
//    //        root.AppendChild(doctorIdNode);

//    //        XmlNode searchCodeNode = xmlDoc.CreateElement("searchCode");
//    //        searchCodeNode.InnerText = request.SearchCode;
//    //        root.AppendChild(searchCodeNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetRegsiterScheduleInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetRegsiterScheduleInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetScheduleInfoResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.RegList = new List<GetScheduleInfoResponse.RegInfo>();
//    //        var xNodes = xmlDoc.SelectNodes("/message/res/regInfo");
//    //        if (xNodes != null)
//    //        {
//    //            foreach (XmlNode xNode in xNodes)
//    //            {
//    //                GetScheduleInfoResponse.RegInfo regInfo = new GetScheduleInfoResponse.RegInfo();
//    //                regInfo.ScheduleList = new List<GetScheduleInfoResponse.ScheduleInfo>();
//    //                var doctorId = xNode.SelectSingleNode("doctorId")?.InnerText ?? "";
//    //                var doctorName = xNode.SelectSingleNode("doctorName")?.InnerText ?? "";
//    //                var doctorLevelCode = xNode.SelectSingleNode("doctorLevelCode")?.InnerText ?? "";
//    //                var doctorLevel = xNode.SelectSingleNode("doctorLevel")?.InnerText ?? "";
//    //                var description = xNode.SelectSingleNode("description")?.InnerText ?? "";
//    //                regInfo.DoctorId = doctorId;
//    //                regInfo.DoctorName = doctorName;
//    //                regInfo.DoctorLevel = doctorLevel;
//    //                regInfo.DoctorLevelCode = doctorLevelCode;
//    //                regInfo.Description = description;

//    //                var scheculeNodes = xNode.SelectNodes("scheduleInfo");
//    //                //var scheculeNodes = xmlDoc.SelectNodes("/message/res/regInfo/scheduleInfo");
//    //                if (scheculeNodes != null)
//    //                    foreach (XmlNode scheculeNode in scheculeNodes)
//    //                    {
//    //                        var deptId = scheculeNode.SelectSingleNode("deptId")?.InnerText ?? "";
//    //                        var deptName = scheculeNode.SelectSingleNode("deptName")?.InnerText ?? "";
//    //                        var clinicUnitName = scheculeNode.SelectSingleNode("clinicUnitName")?.InnerText ?? "";
//    //                        var clinicUnitId = scheculeNode.SelectSingleNode("clinicUnitId")?.InnerText ?? "";
//    //                        var regDate = scheculeNode.SelectSingleNode("regDate")?.InnerText ?? "";
//    //                        var shiftCode = scheculeNode.SelectSingleNode("shiftCode")?.InnerText ?? "";
//    //                        var shiftName = scheculeNode.SelectSingleNode("shiftName")?.InnerText ?? "";
//    //                        var startTime = scheculeNode.SelectSingleNode("startTime")?.InnerText ?? "";
//    //                        var endTime = scheculeNode.SelectSingleNode("endTime")?.InnerText ?? "";
//    //                        var scheduleId = scheculeNode.SelectSingleNode("scheduleId")?.InnerText ?? "";
//    //                        var regStatus = scheculeNode.SelectSingleNode("regStatus")?.InnerText ?? "";
//    //                        var totalCount = scheculeNode.SelectSingleNode("regTotalCount")?.InnerText ?? "";
//    //                        var leaveCount = scheculeNode.SelectSingleNode("regLeaveCount")?.InnerText ?? "";
//    //                        var regFee = scheculeNode.SelectSingleNode("regFee")?.InnerText ?? "";
//    //                        var treatFee = scheculeNode.SelectSingleNode("treatFee")?.InnerText ?? "";
//    //                        var isTimeReg = scheculeNode.SelectSingleNode("isTimeReg")?.InnerText ?? "";
//    //                        var regType = scheculeNode.SelectSingleNode("regLevel")?.InnerText ?? "";

//    //                        // 已经停诊,暂未开放的排班不显示
//    //                        if (regStatus != "1")
//    //                        {
//    //                            continue;
//    //                        }

//    //                        // 已经结束的排班不显示
//    //                        //if (string.CompareOrdinal(regDate, DateTime.Now.ToString("yyyy-MM-dd")) < 0
//    //                        //    ||
//    //                        //    (string.CompareOrdinal(regDate, DateTime.Now.ToString("yyyy-MM-dd")) == 0
//    //                        //     && string.CompareOrdinal(endTime, DateTime.Now.ToString("HH:mm")) <= 0))
//    //                        //{
//    //                        //    //continue;
//    //                        //    totalCount = "1";
//    //                        //    leaveCount = "0";
//    //                        //}

//    //                        var scheduleObj = new GetScheduleInfoResponse.ScheduleInfo();
//    //                        scheduleObj.DeptId = deptId;
//    //                        scheduleObj.DeptName = deptName;
//    //                        scheduleObj.RegDate = regDate;
//    //                        scheduleObj.ScheduleId = scheduleId;
//    //                        scheduleObj.ClinicUnitId = clinicUnitId;
//    //                        scheduleObj.ClinicUnitName = clinicUnitName;
//    //                        scheduleObj.RegStatus = regStatus;
//    //                        scheduleObj.ShiftCode = shiftCode;
//    //                        scheduleObj.TimeSlice = shiftName;
//    //                        scheduleObj.StartTime = startTime;
//    //                        scheduleObj.EndTime = endTime;
//    //                        scheduleObj.TotalCount = totalCount;
//    //                        scheduleObj.LeaveCount = leaveCount;
//    //                        scheduleObj.IsTimeFlag = isTimeReg;
//    //                        scheduleObj.Fee = regFee;
//    //                        scheduleObj.TreatFee = treatFee;
//    //                        scheduleObj.IsTimeFlag = isTimeReg;
//    //                        scheduleObj.RegType = regType;
//    //                        regInfo.ScheduleList.Add(scheduleObj);
//    //                    }
//    //                regInfo.ScheduleList.Sort(new ScheduleInfoComparer());
//    //                response.RegList.Add(regInfo);
//    //            }
//    //            //response.RegList.Sort(new ScheduleInfoComparer());
//    //        }
//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 获取排班分时信息
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("GetApptTimeRegInfo")]
//    //    public GetTimeRegInfoResponse GetApptTimeRegInfo(GetTimeRegInfoRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("appointment.getTimeInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode scheduleIdNode = xmlDoc.CreateElement("scheduleId");
//    //        scheduleIdNode.InnerText = request.ScheduleId;
//    //        root.AppendChild(scheduleIdNode);

//    //        XmlNode deptIdNode = xmlDoc.CreateElement("deptId");
//    //        deptIdNode.InnerText = request.DeptId;
//    //        root.AppendChild(deptIdNode);

//    //        XmlNode doctorIdNode = xmlDoc.CreateElement("doctorId");
//    //        doctorIdNode.InnerText = request.DoctorId;
//    //        root.AppendChild(doctorIdNode);

//    //        XmlNode regDateNode = xmlDoc.CreateElement("regDate");
//    //        regDateNode.InnerText = request.RegDate;
//    //        root.AppendChild(regDateNode);

//    //        XmlNode shiftCodeNode = xmlDoc.CreateElement("shiftCode");
//    //        shiftCodeNode.InnerText = request.ShiftCode;
//    //        root.AppendChild(shiftCodeNode);

//    //        XmlNode clinicUnitIdNode = xmlDoc.CreateElement("clinicUnitId");
//    //        clinicUnitIdNode.InnerText = request.ClinicUnitId;
//    //        root.AppendChild(clinicUnitIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 getTimeRegInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("getTimeRegInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetTimeRegInfoResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.TimeRegList = new List<GetTimeRegInfoResponse.TimeRegInfo>();
//    //        var nodes = xmlDoc.SelectNodes("/message/res/timeRegInfo");
//    //        if (nodes != null)
//    //        {
//    //            foreach (XmlNode xNode in nodes)
//    //            {
//    //                var timeRegObj = new GetTimeRegInfoResponse.TimeRegInfo();
                    
      
//    //                var startTime = xNode.SelectSingleNode("startTime")?.InnerText ?? "";
//    //                var endTime = xNode.SelectSingleNode("endTime")?.InnerText ?? "";
//    //                var totalCount = xNode.SelectSingleNode("regTotalCount")?.InnerText ?? "";
//    //                var leaveCount = xNode.SelectSingleNode("regLeaveCount")?.InnerText ?? "";
//    //                var sqNo = xNode.SelectSingleNode("periodId")?.InnerText ?? "";


//    //                timeRegObj.StartTime = startTime;
//    //                timeRegObj.EndTime = endTime;
//    //                timeRegObj.TotalCount = totalCount;
//    //                timeRegObj.LeaveCount = leaveCount;
//    //                timeRegObj.SqNo = sqNo;

//    //                response.TimeRegList.Add(timeRegObj);
//    //            }
//    //        }

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 获取排班分时信息
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("GetRegisterTimeRegInfo")]
//    //    public GetTimeRegInfoResponse GetRegisterTimeRegInfo(GetTimeRegInfoRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("register.getTimeInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode scheduleIdNode = xmlDoc.CreateElement("scheduleId");
//    //        scheduleIdNode.InnerText = request.ScheduleId;
//    //        root.AppendChild(scheduleIdNode);

//    //        XmlNode deptIdNode = xmlDoc.CreateElement("deptId");
//    //        deptIdNode.InnerText = request.DeptId;
//    //        root.AppendChild(deptIdNode);

//    //        XmlNode doctorIdNode = xmlDoc.CreateElement("doctorId");
//    //        doctorIdNode.InnerText = request.DoctorId;
//    //        root.AppendChild(doctorIdNode);

//    //        XmlNode regDateNode = xmlDoc.CreateElement("regDate");
//    //        regDateNode.InnerText = request.RegDate;
//    //        root.AppendChild(regDateNode);

//    //        XmlNode shiftCodeNode = xmlDoc.CreateElement("shiftCode");
//    //        shiftCodeNode.InnerText = request.ShiftCode;
//    //        root.AppendChild(shiftCodeNode);

//    //        XmlNode clinicUnitIdNode = xmlDoc.CreateElement("clinicUnitId");
//    //        clinicUnitIdNode.InnerText = request.ClinicUnitId;
//    //        root.AppendChild(clinicUnitIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetRegisterTimeRegInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetRegisterTimeRegInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetTimeRegInfoResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.TimeRegList = new List<GetTimeRegInfoResponse.TimeRegInfo>();
//    //        var nodes = xmlDoc.SelectNodes("/message/res/timeRegInfo");
//    //        if (nodes != null)
//    //        {
//    //            foreach (XmlNode xNode in nodes)
//    //            {
//    //                var timeRegObj = new GetTimeRegInfoResponse.TimeRegInfo();

//    //                var startTime = xNode.SelectSingleNode("startTime")?.InnerText ?? "";
//    //                var endTime = xNode.SelectSingleNode("endTime")?.InnerText ?? "";
//    //                var totalCount = xNode.SelectSingleNode("regTotalCount")?.InnerText ?? "";
//    //                var leaveCount = xNode.SelectSingleNode("regLeaveCount")?.InnerText ?? "";
//    //                var sqNo = xNode.SelectSingleNode("periodId")?.InnerText ?? "";

//    //                timeRegObj.StartTime = startTime;
//    //                timeRegObj.EndTime = endTime;
//    //                timeRegObj.TotalCount = totalCount;
//    //                timeRegObj.LeaveCount = leaveCount;
//    //                timeRegObj.SqNo = sqNo;

//    //                response.TimeRegList.Add(timeRegObj);
//    //            }
//    //        }

//    //        return response;
//    //    }
//    //    /// <summary>
//    //    /// 通过调用此接口给指定的手机号码发送一条短信消息，其中包含传入的验证码
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("SendSmsVerifyCode")]
//    //    public SendSmsResponse SendSmsVerifyCode(SendSmsRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("support.sendSmsVerifyCode");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode mobilePhoneNode = xmlDoc.CreateElement("mobilePhone");
//    //        mobilePhoneNode.InnerText = request.MobilePhone;
//    //        root.AppendChild(mobilePhoneNode);

//    //        XmlNode verifyCodeNoNode = xmlDoc.CreateElement("verifyCode");
//    //        verifyCodeNoNode.InnerText = request.VerifyCode;
//    //        root.AppendChild(verifyCodeNoNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 SendSmsVerifyCode 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("SendSmsVerifyCode", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new SendSmsResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 在his系统中查找指定时间段内的停诊信息。如果是返回医生信息，则orderId留空，其他字段全部必填；如果是返回订单信息，则orderId必填，其他字段不需要填写
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetStopDoctorInfo")]
//    //    public GetStopDoctorInfoResponse GetStopDoctorInfo(GetStopDoctorInfoRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("support.getStopDoctorInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");


//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode startDateNode = xmlDoc.CreateElement("startDate");
//    //        startDateNode.InnerText = request.StartDate;
//    //        root.AppendChild(startDateNode);

//    //        XmlNode endDateNode = xmlDoc.CreateElement("endDate");
//    //        endDateNode.InnerText = request.EndDate;
//    //        root.AppendChild(endDateNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetStopDoctorInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetStopDoctorInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetStopDoctorInfoResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.Doctors = new List<GetStopDoctorInfoResponse.StopDoctorInfo>();
//    //        var nodes = xmlDoc.SelectNodes("/message/res/regInfo");
//    //        if (nodes != null)
//    //        {
//    //            foreach (XmlNode xNode in nodes)
//    //            {
//    //                GetStopDoctorInfoResponse.StopDoctorInfo doctor = new GetStopDoctorInfoResponse.StopDoctorInfo
//    //                {
//    //                    DeptId = xNode.SelectSingleNode("deptId")?.InnerText ?? "",
//    //                    DoctorId = xNode.SelectSingleNode("doctorId")?.InnerText ?? "",
//    //                    DoctorName = xNode.SelectSingleNode("doctorName")?.InnerText ?? "",
//    //                    ReplaceDoctorId = xNode.SelectSingleNode("replaceDoctorId")?.InnerText ?? "",
//    //                    ReplaceDoctorName = xNode.SelectSingleNode("replaceDoctorName")?.InnerText ?? "",
//    //                    RegDate = xNode.SelectSingleNode("regDate")?.InnerText ?? "",
//    //                    ShiftCode = xNode.SelectSingleNode("shiftCode")?.InnerText ?? "",
//    //                    BeginTime = xNode.SelectSingleNode("beginTime")?.InnerText ?? "",
//    //                    EndTime = xNode.SelectSingleNode("endTime")?.InnerText ?? "",
//    //                    ScheduleId = xNode.SelectSingleNode("scheduleId")?.InnerText ?? "",
//    //                    OrderId = xNode.SelectSingleNode("orderId")?.InnerText ?? "",
//    //                    Reason = xNode.SelectSingleNode("reason")?.InnerText ?? "",
//    //                };
//    //                response.Doctors.Add(doctor);
//    //            }
//    //        }

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 在用户通过移动服务挂号时调用该接口获取该患者可用的服务对象
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns      
//    //    [HttpPost]
//    //    [ActionName("GetSvObject")]
//    //    public GetSvObjectResponse GetSvObject(GetSvObjectRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("support.getSvObject");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(healthCardNoNode);


//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetSvObject 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetSvObject", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetSvObjectResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.SvObjects = new List<GetSvObjectResponse.SvObjectInfo>();
//    //        var nodes = xmlDoc.SelectNodes("/message/res/svObjectInfo");
//    //        if (nodes != null)
//    //        {
//    //            foreach (XmlNode svNode in nodes)
//    //            {
//    //                GetSvObjectResponse.SvObjectInfo svObjectInfo = new GetSvObjectResponse.SvObjectInfo
//    //                {
//    //                    SvObjectId = svNode.SelectSingleNode("svObjectId")?.InnerText ?? "",
//    //                    SvObject = svNode.SelectSingleNode("svObject")?.InnerText ?? "",
//    //                };
//    //                response.SvObjects.Add(svObjectInfo);
//    //            }
//    //        }

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 获取挂号优惠费用       
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("GetRegistFee")]
//    //    public GetRegistFeeResponse GetRegistFee(GetRegistFeeRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("support.getRegFee");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode deptIdNode = xmlDoc.CreateElement("deptId");
//    //        deptIdNode.InnerText = request.DeptId;
//    //        root.AppendChild(deptIdNode);

//    //        XmlNode doctorIdNode = xmlDoc.CreateElement("doctorId");
//    //        doctorIdNode.InnerText = request.DoctorId;
//    //        root.AppendChild(doctorIdNode);

//    //        XmlNode regDateNode = xmlDoc.CreateElement("regDate");
//    //        regDateNode.InnerText = request.RegDate;
//    //        root.AppendChild(regDateNode);

//    //        XmlNode shiftCodeNode = xmlDoc.CreateElement("shiftCode");
//    //        shiftCodeNode.InnerText = request.ShiftCode;
//    //        root.AppendChild(shiftCodeNode);

//    //        XmlNode scheduleIdNode = xmlDoc.CreateElement("scheduleId");
//    //        scheduleIdNode.InnerText = request.ScheduleId;
//    //        root.AppendChild(scheduleIdNode);

//    //        XmlNode svObjectIdNode = xmlDoc.CreateElement("svObjectId");
//    //        svObjectIdNode.InnerText = request.SvObjectId;
//    //        root.AppendChild(svObjectIdNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";

//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetRegistFee 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetRegistFee", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetRegistFeeResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;

//    //        node = xmlDoc.SelectSingleNode("/message/res/yhFee");
//    //        var yhFee = node?.InnerText ?? "";
//    //        response.YhFee = yhFee;

//    //        node = xmlDoc.SelectSingleNode("/message/res/svObject");
//    //        var svObject = node?.InnerText ?? "";
//    //        response.SvObject = svObject;

//    //        return response;
//    //    }
//    //    /// <summary>
//    //    /// 锁定号源
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("ExeLockSource")]
//    //    public ExeLockSourceResponse ExeLockSource(ExeLockSourceRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("register.lockReg");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode lockIdNode = xmlDoc.CreateElement("lockId");
//    //        lockIdNode.InnerText = request.LockId;
//    //        root.AppendChild(lockIdNode);

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode deptIdNode = xmlDoc.CreateElement("deptId");
//    //        deptIdNode.InnerText = request.DeptId;
//    //        root.AppendChild(deptIdNode);

//    //        XmlNode clinicUnitIdNode = xmlDoc.CreateElement("clinicUnitId");
//    //        clinicUnitIdNode.InnerText = request.ClinicUnitId;
//    //        root.AppendChild(clinicUnitIdNode);

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        XmlNode patientNameNode = xmlDoc.CreateElement("patientName");
//    //        patientNameNode.InnerText = request.PatientName;
//    //        root.AppendChild(patientNameNode);

//    //        XmlNode idCardNoNode = xmlDoc.CreateElement("idCardNo");
//    //        idCardNoNode.InnerText = request.IdCardNo;
//    //        root.AppendChild(idCardNoNode);

//    //        XmlNode phoneNode = xmlDoc.CreateElement("phone");
//    //        phoneNode.InnerText = request.Phone;
//    //        root.AppendChild(phoneNode);

//    //        XmlNode doctorIdNode = xmlDoc.CreateElement("doctorId");
//    //        doctorIdNode.InnerText = request.DoctorId;
//    //        root.AppendChild(doctorIdNode);

//    //        XmlNode doctorLevelCodeNode = xmlDoc.CreateElement("doctorLevelCode");
//    //        doctorLevelCodeNode.InnerText = request.DoctorLevelCode;
//    //        root.AppendChild(doctorLevelCodeNode);

//    //        XmlNode regDateNode = xmlDoc.CreateElement("regDate");
//    //        regDateNode.InnerText = request.RegDate;
//    //        root.AppendChild(regDateNode);

//    //        XmlNode shiftCodeode = xmlDoc.CreateElement("shiftCode");
//    //        shiftCodeode.InnerText = request.ShiftCode;
//    //        root.AppendChild(shiftCodeode);

//    //        XmlNode startTimeNode = xmlDoc.CreateElement("startTime");
//    //        startTimeNode.InnerText = request.StartTime;
//    //        root.AppendChild(startTimeNode);

//    //        XmlNode endTimeNode = xmlDoc.CreateElement("endTime");
//    //        endTimeNode.InnerText = request.EndTime;
//    //        root.AppendChild(endTimeNode);

//    //        XmlNode scheduleIdNode = xmlDoc.CreateElement("scheduleId");
//    //        scheduleIdNode.InnerText = request.ScheduleId;
//    //        root.AppendChild(scheduleIdNode);

//    //        XmlNode periodIdNode = xmlDoc.CreateElement("periodId");
//    //        periodIdNode.InnerText = request.PeriodId;
//    //        root.AppendChild(periodIdNode);

//    //        XmlNode svObjectIdNode = xmlDoc.CreateElement("svObjectId");
//    //        svObjectIdNode.InnerText = request.SvObjectId;
//    //        root.AppendChild(svObjectIdNode);

//    //        XmlNode regFeeNode = xmlDoc.CreateElement("regFee");
//    //        regFeeNode.InnerText = request.RegFee;
//    //        root.AppendChild(regFeeNode);

//    //        XmlNode treatFeeNode = xmlDoc.CreateElement("treatFee");
//    //        treatFeeNode.InnerText = request.TreatFee;
//    //        root.AppendChild(treatFeeNode);

//    //        XmlNode remarkNode = xmlDoc.CreateElement("remark");
//    //        remarkNode.InnerText = request.Remark;
//    //        root.AppendChild(remarkNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 ExeLockSource 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("ExeLockSource", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new ExeLockSourceResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.InfoSeq = xmlDoc.SelectSingleNode("/message/res/infoSeq")?.InnerText ?? "";

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 解锁号源
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("ExeUnLockSource")]
//    //    public ExeUnLockSourceResponse ExeUnLockSource(ExeUnLockSourceRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("register.unlockReg");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode orderIdNode = xmlDoc.CreateElement("lockId");
//    //        orderIdNode.InnerText = request.LockId;
//    //        root.AppendChild(orderIdNode);

//    //        XmlNode infoSeqNode = xmlDoc.CreateElement("infoSeq");
//    //        infoSeqNode.InnerText = request.InfoSeq;
//    //        root.AppendChild(infoSeqNode);

//    //        XmlNode scheduleIdNode = xmlDoc.CreateElement("scheduleId");
//    //        scheduleIdNode.InnerText = request.ScheduleId;
//    //        root.AppendChild(scheduleIdNode);

//    //        XmlNode periodIdNode = xmlDoc.CreateElement("periodId");
//    //        periodIdNode.InnerText = request.PeriodId;
//    //        root.AppendChild(periodIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 ExeUnLockSource 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("ExeUnLockSource", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new ExeUnLockSourceResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 预约
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("ExeAppoint")]
//    //    public ExeAppointResponse ExeAppoint(ExeAppointRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("appointment.addOrder");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode orderIdNode = xmlDoc.CreateElement("orderId");
//    //        orderIdNode.InnerText = request.OrderId;
//    //        root.AppendChild(orderIdNode);

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = request.HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode deptIdNode = xmlDoc.CreateElement("deptId");
//    //        deptIdNode.InnerText = request.DeptId;
//    //        root.AppendChild(deptIdNode);

//    //        XmlNode clinicUnitIdNode = xmlDoc.CreateElement("clinicUnitId");
//    //        clinicUnitIdNode.InnerText = request.ClinicUnitId;
//    //        root.AppendChild(clinicUnitIdNode);

//    //        XmlNode doctorIdNode = xmlDoc.CreateElement("doctorId");
//    //        doctorIdNode.InnerText = request.DoctorId;
//    //        root.AppendChild(doctorIdNode);

//    //        XmlNode doctorLevelCodeNode = xmlDoc.CreateElement("doctorLevelCode");
//    //        doctorLevelCodeNode.InnerText = request.DoctorLevelCode;
//    //        root.AppendChild(doctorLevelCodeNode);

//    //        XmlNode regDateNode = xmlDoc.CreateElement("regDate");
//    //        regDateNode.InnerText = request.RegDate;
//    //        root.AppendChild(regDateNode);

//    //        XmlNode scheduleIdNode = xmlDoc.CreateElement("scheduleId");
//    //        scheduleIdNode.InnerText = request.ScheduleId;
//    //        root.AppendChild(scheduleIdNode);

//    //        XmlNode periodIdNode = xmlDoc.CreateElement("periodId");
//    //        periodIdNode.InnerText = request.PeriodId;
//    //        root.AppendChild(periodIdNode);

//    //        XmlNode shiftCodeNode = xmlDoc.CreateElement("shiftCode");
//    //        shiftCodeNode.InnerText = request.ShiftCode;
//    //        root.AppendChild(shiftCodeNode);

//    //        XmlNode startTimeNode = xmlDoc.CreateElement("startTime");
//    //        startTimeNode.InnerText = request.StartTime;
//    //        root.AppendChild(startTimeNode);

//    //        XmlNode endTimeNode = xmlDoc.CreateElement("endTime");
//    //        endTimeNode.InnerText = request.EndTime;
//    //        root.AppendChild(endTimeNode);

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        XmlNode patientNameNode = xmlDoc.CreateElement("patientName");
//    //        patientNameNode.InnerText = request.PatientName;
//    //        root.AppendChild(patientNameNode);

//    //        XmlNode idCardNoNode = xmlDoc.CreateElement("idCardNo");
//    //        idCardNoNode.InnerText = request.IdCardNo;
//    //        root.AppendChild(idCardNoNode);

//    //        XmlNode phone = xmlDoc.CreateElement("phone");
//    //        phone.InnerText = request.Phone;
//    //        root.AppendChild(phone);

//    //        XmlNode orderTypeNode = xmlDoc.CreateElement("orderType");
//    //        orderTypeNode.InnerText = OrderType;
//    //        root.AppendChild(orderTypeNode);

//    //        XmlNode orderTimeNode = xmlDoc.CreateElement("orderTime");
//    //        orderTimeNode.InnerText = request.OrderTime;
//    //        root.AppendChild(orderTimeNode);

//    //        XmlNode svObjectIdNode = xmlDoc.CreateElement("svObjectId");
//    //        svObjectIdNode.InnerText = request.SvObjectId;
//    //        root.AppendChild(svObjectIdNode);


//    //        XmlNode feeNode = xmlDoc.CreateElement("fee");
//    //        feeNode.InnerText = request.RegFee;
//    //        root.AppendChild(feeNode);


//    //        XmlNode treatfeeNode = xmlDoc.CreateElement("treatfee");
//    //        treatfeeNode.InnerText = request.TreatFee;
//    //        root.AppendChild(treatfeeNode);


//    //        XmlNode remarkNode = xmlDoc.CreateElement("remark");
//    //        remarkNode.InnerText = request.Remark;
//    //        root.AppendChild(remarkNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 ExeAppoint 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("ExeAppoint", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new ExeAppointResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.BookingNo = xmlDoc.SelectSingleNode("/message/res/bookingNo")?.InnerText ?? "";
//    //        response.RoomAddress = xmlDoc.SelectSingleNode("/message/res/roomAddress")?.InnerText ?? "";
//    //        response.OppatNo = xmlDoc.SelectSingleNode("/message/res/oppatNo")?.InnerText ?? "";
//    //        response.ClinicSeq = xmlDoc.SelectSingleNode("/message/res/clinicSeq")?.InnerText ?? "";
//    //        response.QueueNo = xmlDoc.SelectSingleNode("/message/res/queueNo")?.InnerText ?? "";

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 取消预约
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("CancelAppoint")]
//    //    public CancelAppointResponse CancelAppoint(CancelAppointRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("appointment.cancelOrder");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode orderIdNode = xmlDoc.CreateElement("orderId");
//    //        orderIdNode.InnerText = request.OrderId;
//    //        root.AppendChild(orderIdNode);

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        XmlNode scheduleIdNode = xmlDoc.CreateElement("scheduleId");
//    //        scheduleIdNode.InnerText = request.ScheduleId;
//    //        root.AppendChild(scheduleIdNode);

//    //        XmlNode periodIdNode = xmlDoc.CreateElement("periodId");
//    //        periodIdNode.InnerText = request.PeriodId;
//    //        root.AppendChild(periodIdNode);

//    //        XmlNode bookingNoNode = xmlDoc.CreateElement("bookingNo");
//    //        bookingNoNode.InnerText = request.BookingNo;
//    //        root.AppendChild(bookingNoNode);

//    //        XmlNode cancelTimeNode = xmlDoc.CreateElement("cancelTime");
//    //        cancelTimeNode.InnerText = request.CancelTime;
//    //        root.AppendChild(cancelTimeNode);

//    //        XmlNode cancelReasonNode = xmlDoc.CreateElement("cancelReason");
//    //        cancelReasonNode.InnerText = request.CancelReason;
//    //        root.AppendChild(cancelReasonNode);

//    //        xmlDoc.FirstChild.AppendChild(root);
//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 CancelAppoint 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("CancelAppoint", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new CancelAppointResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 挂号支付
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("ExeRegister")]
//    //    public ExeRegisterResponse ExeRegister(ExeRegisterRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("register.pay");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode lockIdNode = xmlDoc.CreateElement("lockId");
//    //        lockIdNode.InnerText = request.LockId;
//    //        root.AppendChild(lockIdNode);

//    //        XmlNode infoSeqNode = xmlDoc.CreateElement("infoSeq");
//    //        infoSeqNode.InnerText = request.InfoSeq;
//    //        root.AppendChild(infoSeqNode);

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode orderIdNode = xmlDoc.CreateElement("orderId");
//    //        orderIdNode.InnerText = request.OrderId;
//    //        root.AppendChild(orderIdNode);

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        XmlNode orderTypeNode = xmlDoc.CreateElement("orderType");
//    //        orderTypeNode.InnerText = OrderType;
//    //        root.AppendChild(orderTypeNode);

//    //        XmlNode orderTimeNode = xmlDoc.CreateElement("orderTime");
//    //        orderTimeNode.InnerText = request.OrderTime;
//    //        root.AppendChild(orderTimeNode); 

//    //        XmlNode svObjectIdNode = xmlDoc.CreateElement("svObjectId");
//    //        svObjectIdNode.InnerText = request.SvObjectId;
//    //        root.AppendChild(svObjectIdNode);

//    //        XmlNode operatorIdNode = xmlDoc.CreateElement("operatorId");
//    //        operatorIdNode.InnerText = OpeartorId;
//    //        root.AppendChild(operatorIdNode);

//    //        XmlNode machineIdNode = xmlDoc.CreateElement("machineId");
//    //        machineIdNode.InnerText = request.MachineId;
//    //        root.AppendChild(machineIdNode);

//    //        XmlNode payAmoutNode = xmlDoc.CreateElement("payAmout");
//    //        payAmoutNode.InnerText = request.PayAmout;
//    //        root.AppendChild(payAmoutNode);

//    //        XmlNode payModeNode = xmlDoc.CreateElement("payMode");
//    //        payModeNode.InnerText = PayModel;
//    //        root.AppendChild(payModeNode);

//    //        XmlNode tradeNoNode = xmlDoc.CreateElement("tradeNo");
//    //        tradeNoNode.InnerText = request.TradeNo;
//    //        root.AppendChild(tradeNoNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 ExeRegister 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("ExeRegister", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new ExeRegisterResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.RoomAddress = xmlDoc.SelectSingleNode("/message/res/roomAddress")?.InnerText ?? "";
//    //        response.OppatNo = xmlDoc.SelectSingleNode("/message/res/oppatNo")?.InnerText ?? "";
//    //        response.ClinicSeq = xmlDoc.SelectSingleNode("/message/res/clinicSeq")?.InnerText ?? "";
//    //        response.ClinicTime = xmlDoc.SelectSingleNode("/message/res/clinicTime")?.InnerText ?? "";
//    //        response.QueueNo = xmlDoc.SelectSingleNode("/message/res/queueNo")?.InnerText ?? "";

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 预约支付
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("ExeResSourceRegister")]
//    //    public ExeResSourceRegisterResponse ExeResSourceRegister(ExeResSourceRegisterRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("appointment.pay");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode payTypeNode = xmlDoc.CreateElement("hospitalId");
//    //        payTypeNode.InnerText = HospitalId;
//    //        root.AppendChild(payTypeNode);

//    //        XmlNode orderIdNode = xmlDoc.CreateElement("orderId");
//    //        orderIdNode.InnerText = request.OrderId;
//    //        root.AppendChild(orderIdNode);

//    //        XmlNode tradeNoNode = xmlDoc.CreateElement("tradeNo");
//    //        tradeNoNode.InnerText = request.TradeNo;
//    //        root.AppendChild(tradeNoNode);

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        XmlNode bookingNoNode = xmlDoc.CreateElement("bookingNo");
//    //        bookingNoNode.InnerText = request.BookingNo;
//    //        root.AppendChild(bookingNoNode);

//    //        XmlNode svObjectIdNode = xmlDoc.CreateElement("svObjectId");
//    //        svObjectIdNode.InnerText = request.SvObjectId;
//    //        root.AppendChild(svObjectIdNode);

//    //        XmlNode operatorIdNode = xmlDoc.CreateElement("operatorId");
//    //        operatorIdNode.InnerText = OpeartorId;
//    //        root.AppendChild(operatorIdNode);

//    //        XmlNode payAmoutNode = xmlDoc.CreateElement("payAmout");
//    //        payAmoutNode.InnerText = request.PayAmout;
//    //        root.AppendChild(payAmoutNode);

//    //        XmlNode machineIdNode = xmlDoc.CreateElement("machineId");
//    //        machineIdNode.InnerText = request.MachineId;
//    //        root.AppendChild(machineIdNode);

//    //        XmlNode payModeNode = xmlDoc.CreateElement("payMode");
//    //        payModeNode.InnerText = PayModel;
//    //        root.AppendChild(payModeNode);

//    //        XmlNode payTimeNode = xmlDoc.CreateElement("payTime");
//    //        payTimeNode.InnerText = request.PayTime;
//    //        root.AppendChild(payTimeNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 ExeResSourceRegister 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("ExeResSourceRegister", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new ExeResSourceRegisterResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.RoomAddress = xmlDoc.SelectSingleNode("/message/res/roomAddress")?.InnerText ?? "";
//    //        response.OppatNo = xmlDoc.SelectSingleNode("/message/res/oppatNo")?.InnerText ?? "";
//    //        response.ClinicSeq = xmlDoc.SelectSingleNode("/message/res/clinicSeq")?.InnerText ?? "";
//    //        response.QueueNo = xmlDoc.SelectSingleNode("/message/res/queueNo")?.InnerText ?? "";

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 退号    
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("CancelRegister")]
//    //    public CancelRegisterResponse CancelRegister(CancelRegisterRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("appointment.returnPay");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode patientIdNoNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNoNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNoNode);

//    //        XmlNode orderIdNoNode = xmlDoc.CreateElement("orderId");
//    //        orderIdNoNode.InnerText = request.OrderId;
//    //        root.AppendChild(orderIdNoNode);

//    //        XmlNode scheduleIdNode = xmlDoc.CreateElement("scheduleId");
//    //        scheduleIdNode.InnerText = request.ScheduleId;
//    //        root.AppendChild(scheduleIdNode);

//    //        XmlNode periodIdNode = xmlDoc.CreateElement("periodId");
//    //        periodIdNode.InnerText = request.PeriodId;
//    //        root.AppendChild(periodIdNode);

//    //        XmlNode clinicSeqNode = xmlDoc.CreateElement("clinicSeq");
//    //        clinicSeqNode.InnerText = request.ClinicSeq;
//    //        root.AppendChild(clinicSeqNode);

//    //        XmlNode tradeNoNode = xmlDoc.CreateElement("tradeNo");
//    //        tradeNoNode.InnerText = request.TradeNo;
//    //        root.AppendChild(tradeNoNode);

//    //        XmlNode operatorIdNode = xmlDoc.CreateElement("operatorId");
//    //        operatorIdNode.InnerText = request.OperatorId;
//    //        root.AppendChild(operatorIdNode);

//    //        XmlNode machineIdoNode = xmlDoc.CreateElement("machineId");
//    //        machineIdoNode.InnerText = request.MachineId;
//    //        root.AppendChild(machineIdoNode);

//    //        XmlNode refundFeeNode = xmlDoc.CreateElement("refundFee");
//    //        refundFeeNode.InnerText = request.RefundFee;
//    //        root.AppendChild(refundFeeNode);

//    //        XmlNode refundTimeNode = xmlDoc.CreateElement("refundTime");
//    //        refundTimeNode.InnerText = request.RefundTime;
//    //        root.AppendChild(refundTimeNode);

//    //        XmlNode refundReasonNode = xmlDoc.CreateElement("refundReason");
//    //        refundReasonNode.InnerText = request.RefundReason;
//    //        root.AppendChild(refundReasonNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 CancelRegister 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("CancelRegister", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new CancelRegisterResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 获取预约挂号单据状态
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetApptStatus")]
//    //    public GetOrderStatusResponse GetApptStatus(GetOrderStatusRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("support.GetApptStatus");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("orderId");
//    //        healthCardNoNode.InnerText = request.OrderId;
//    //        root.AppendChild(healthCardNoNode);


//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetApptStatus 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetApptStatus", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetOrderStatusResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.Status = xmlDoc.SelectSingleNode("/message/res/status")?.InnerText ?? "";
//    //        response.RoomAddress = xmlDoc.SelectSingleNode("/message/res/roomAddress")?.InnerText ?? "";
//    //        response.OppatNo = xmlDoc.SelectSingleNode("/message/res/oppatNo")?.InnerText ?? "";
//    //        response.ClinicSeq = xmlDoc.SelectSingleNode("/message/res/clinicSeq")?.InnerText ?? "";
//    //        response.ClinicTime = xmlDoc.SelectSingleNode("/message/res/clinicTime")?.InnerText ?? "";
//    //        response.QueueNo = xmlDoc.SelectSingleNode("/message/res/queueNo")?.InnerText ?? "";
//    //        return response;
//    //    }


//    //    /// <summary>
//    //    /// 获取缴费单据状态
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetBillStatus")]
//    //    public GetPayStatusResponse GetBillStatus(GetPayStatusRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("support.GetBillStatus");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("orderId");
//    //        healthCardNoNode.InnerText = request.OrderId;
//    //        root.AppendChild(healthCardNoNode);


//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetBilltatus 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetBilltatus", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetPayStatusResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.Status = xmlDoc.SelectSingleNode("/message/res/status")?.InnerText ?? "";
//    //        response.Remark = xmlDoc.SelectSingleNode("/message/res/remark")?.InnerText ?? "";
//    //        response.GuideInfo = xmlDoc.SelectSingleNode("/message/res/guideInfo")?.InnerText ?? "";
//    //        response.ReceiptId = xmlDoc.SelectSingleNode("/message/res/receiptId")?.InnerText ?? "";

//    //        return response;
//    //    }
//    //    /// <summary>
//    //    ///通过调用该接口获取患者的待缴费就诊记录 
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("GetPrescriptionList")]
//    //    public GetPrescriptionListResponse GetPrescriptionList(GetPrescriptionListRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("outpatient.getPayInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        XmlNode startDateNode = xmlDoc.CreateElement("startDate");
//    //        startDateNode.InnerText = request.StartDate;
//    //        root.AppendChild(startDateNode);

//    //        XmlNode endDateNode = xmlDoc.CreateElement("endDate");
//    //        endDateNode.InnerText = request.EndDate;
//    //        root.AppendChild(endDateNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetPrescriptionList 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetPrescriptionList", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetPrescriptionListResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.PrescList = new List<GetPrescriptionListResponse.PrescInfo>();
//    //        var nodes = xmlDoc.SelectNodes("/message/res/payListInfo");
//    //        if (nodes != null)
//    //        {
//    //            foreach (XmlNode xNode in nodes)
//    //            {
//    //                var prescInfoObj = new GetPrescriptionListResponse.PrescInfo();
//    //                var clinicNo = xNode.SelectSingleNode("clinicSeq")?.InnerText ?? "";
//    //                var prescMoney = xNode.SelectSingleNode("payAmout")?.InnerText ?? "";
//    //                var orderDept = xNode.SelectSingleNode("deptName")?.InnerText ?? "";
//    //                var orderDate = xNode.SelectSingleNode("clinicTime")?.InnerText ?? "";
//    //                var hospitalId = xNode.SelectSingleNode("hospitalId")?.InnerText ?? "";
//    //                var deptId = xNode.SelectSingleNode("deptId")?.InnerText ?? "";
//    //                var doctorId = xNode.SelectSingleNode("doctorId")?.InnerText ?? "";
//    //                var doctorName = xNode.SelectSingleNode("doctorName")?.InnerText ?? "";
//    //                var settleCode = xNode.SelectSingleNode("settleCode")?.InnerText ?? "";
//    //                var settleType = xNode.SelectSingleNode("settleType")?.InnerText ?? "";

//    //                prescInfoObj.ClinicNo = clinicNo;
//    //                prescInfoObj.PrescMoney = prescMoney;
//    //                prescInfoObj.OrderDept = orderDept;
//    //                prescInfoObj.OrderDate = orderDate;
//    //                prescInfoObj.HospitalId = hospitalId;
//    //                prescInfoObj.DeptId = deptId;
//    //                prescInfoObj.DoctorId = doctorId;
//    //                prescInfoObj.DoctorName = doctorName;
//    //                prescInfoObj.SettleCode = settleCode;
//    //                prescInfoObj.SettleType = settleType;

//    //                response.PrescList.Add(prescInfoObj);
//    //            }
//    //        }

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 可以通过调用本接口获取某次就诊中指定处方的待缴费费用信息
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("GetPrescriptionDetail")]
//    //    public GetPrescriptionDetailResponse GetPrescriptionDetail(GetPrescriptionDetailRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("outpatient.getPaybillfee");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        XmlNode clinicSeqNode = xmlDoc.CreateElement("clinicSeq");
//    //        clinicSeqNode.InnerText = request.ClinicSeq;
//    //        root.AppendChild(clinicSeqNode);

//    //        XmlNode doctorIdNode = xmlDoc.CreateElement("doctorId");
//    //        doctorIdNode.InnerText = request.DoctorId;
//    //        root.AppendChild(doctorIdNode);

//    //        XmlNode settleCodeNode = xmlDoc.CreateElement("settleCode");
//    //        settleCodeNode.InnerText = request.SettleCode;
//    //        root.AppendChild(settleCodeNode);

//    //        XmlNode prescriptionIdsNode = xmlDoc.CreateElement("prescriptionIds");
//    //        prescriptionIdsNode.InnerText = request.PrescriptionIds;
//    //        root.AppendChild(prescriptionIdsNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetPrescriptionDetail 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetPrescriptionDetail", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetPrescriptionDetailResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;

//    //        response.PrescItemList = new List<GetPrescriptionDetailResponse.PrescItemInfo>();
//    //        response.PayAmout = xmlDoc.SelectSingleNode("/message/res/payAmout")?.InnerText ?? "";
//    //        response.RecPayAmout = xmlDoc.SelectSingleNode("/message/res/recPayAmout")?.InnerText ?? "";
//    //        response.TotalPayAmout = xmlDoc.SelectSingleNode("/message/res/totalPayAmout")?.InnerText ?? "";
//    //        response.PrescriptionIds = xmlDoc.SelectSingleNode("/message/res/prescriptionIds")?.InnerText ?? "";
//    //        response.Remark = xmlDoc.SelectSingleNode("/message/res/remark")?.InnerText ?? "";
//    //        response.MedicareSettleLogId = xmlDoc.SelectSingleNode("/message/res/medicareSettleLogId")?.InnerText ?? "";
//    //        var nodes = xmlDoc.SelectNodes("/message/res/feeInfo");
//    //        if (nodes != null)
//    //        {
//    //            foreach (XmlNode xNode in nodes)
//    //            {
//    //                var prescItemInfoObj = new GetPrescriptionDetailResponse.PrescItemInfo();
//    //                var name = xNode.SelectSingleNode("typeName")?.InnerText ?? "";
//    //                //var account = xNode.SelectSingleNode("Account")?.InnerText ?? "";
//    //                //var itemPrice = xNode.SelectSingleNode("ItemPrice")?.InnerText ?? "";
//    //                //var unit = xNode.SelectSingleNode("Unit")?.InnerText ?? "";
//    //                var money = xNode.SelectSingleNode("typeAmout")?.InnerText ?? "";
//    //                var type = xNode.SelectSingleNode("typeCode")?.InnerText ?? "";

//    //                prescItemInfoObj.ItemName = name;
//    //                //prescItemInfoObj.Account = account;
//    //                //prescItemInfoObj.ItemPrice = itemPrice;
//    //                //prescItemInfoObj.Unit = unit;
//    //                prescItemInfoObj.Money = money;
//    //                prescItemInfoObj.Type = type;

//    //                response.PrescItemList.Add(prescItemInfoObj);
//    //            }
//    //        }

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 通过调用该接口获取用户某一次就诊记录中医生开具的处方
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetPrescriptionInfo")]
//    //    public GetPrescriptionInfoResponse GetPrescriptionInfo(GetPrescriptionInfoReqeust request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("outpatient.getPrescriptionInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode clinicSeqNode = xmlDoc.CreateElement("clinicSeq");
//    //        clinicSeqNode.InnerText = request.ClinicSeq;
//    //        root.AppendChild(clinicSeqNode);

//    //        XmlNode doctorIdNode = xmlDoc.CreateElement("doctorId");
//    //        doctorIdNode.InnerText = request.DoctorId;
//    //        root.AppendChild(doctorIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetPrescriptionInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetPrescriptionInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetPrescriptionInfoResponse();
//    //        response.Prescriptions = new List<GetPrescriptionInfoResponse.PrescriptionInfo>();
//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        var nodes = xmlDoc.SelectNodes("/message/res/prescriptionInfo");
//    //        if (nodes != null)
//    //        {
//    //            foreach (XmlNode xNode in nodes)
//    //            {
//    //                var prescItemInfoObj = new GetPrescriptionInfoResponse.PrescriptionInfo();
//    //                var prescriptionId = xNode.SelectSingleNode("prescriptionId")?.InnerText ?? "";
//    //                var prescriptionName = xNode.SelectSingleNode("prescriptionName")?.InnerText ?? "";
//    //                var deptId = xNode.SelectSingleNode("deptId")?.InnerText ?? "";
//    //                var deptName = xNode.SelectSingleNode("deptName")?.InnerText ?? "";
//    //                var doctorId = xNode.SelectSingleNode("doctorId")?.InnerText ?? "";
//    //                var doctorName = xNode.SelectSingleNode("doctorName")?.InnerText ?? "";
//    //                var payAmout = xNode.SelectSingleNode("payAmout")?.InnerText ?? "";
//    //                var payFlag = xNode.SelectSingleNode("payFlag")?.InnerText ?? "";
//    //                var payable = xNode.SelectSingleNode("payable")?.InnerText ?? "";

//    //                prescItemInfoObj.PrescriptionId = prescriptionId;
//    //                prescItemInfoObj.PrescriptionName = prescriptionName;
//    //                prescItemInfoObj.DeptId = deptId;
//    //                prescItemInfoObj.DeptName = deptName;
//    //                prescItemInfoObj.DoctorId = doctorId;
//    //                prescItemInfoObj.DoctorName = doctorName;
//    //                prescItemInfoObj.PayAmout = payAmout;
//    //                prescItemInfoObj.PayFlag = payFlag;
//    //                prescItemInfoObj.Payable = payable;

//    //                response.Prescriptions.Add(prescItemInfoObj);
//    //            }
//    //        }

//    //        return response;
//    //    }

//    //    /// <summary>
//    //    /// 通过调该接口获取用户的处方明细信息
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetPrescriptionDetailInfo")]
//    //    public GetPrescriptionDetailInfoResponse GetPrescriptionDetailInfo(GetPrescriptionDetailInfoReqeust request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("outpatient.getPrescriptionDetailInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode clinicSeqNode = xmlDoc.CreateElement("clinicSeq");
//    //        clinicSeqNode.InnerText = request.ClinicSeq;
//    //        root.AppendChild(clinicSeqNode);

//    //        XmlNode doctorIdNode = xmlDoc.CreateElement("doctorId");
//    //        doctorIdNode.InnerText = request.DoctorId;
//    //        root.AppendChild(doctorIdNode);

//    //        XmlNode prescriptionIdNode = xmlDoc.CreateElement("prescriptionId");
//    //        prescriptionIdNode.InnerText = request.PrescriptionId;
//    //        root.AppendChild(prescriptionIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetPrescriptionDetailInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetPrescriptionDetailInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new GetPrescriptionDetailInfoResponse();
//    //        response.Details = new List<GetPrescriptionDetailInfoResponse.DetailInfo>();
//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        var nodes = xmlDoc.SelectNodes("/message/res/detailInfo");
//    //        if (nodes != null)
//    //        {
//    //            foreach (XmlNode xNode in nodes)
//    //            {
//    //                var prescItemInfoObj = new GetPrescriptionDetailInfoResponse.DetailInfo();
//    //                var detailId = xNode.SelectSingleNode("detailId")?.InnerText ?? "";
//    //                var detailName = xNode.SelectSingleNode("detailName")?.InnerText ?? "";
//    //                var detailCount = xNode.SelectSingleNode("detailCount")?.InnerText ?? "";
//    //                var detailUnit = xNode.SelectSingleNode("detailUnit")?.InnerText ?? "";
//    //                var detailAmout = xNode.SelectSingleNode("detailAmout")?.InnerText ?? "";
//    //                var detailSpec = xNode.SelectSingleNode("detailSpec")?.InnerText ?? "";
//    //                var detailPrice = xNode.SelectSingleNode("detailPrice")?.InnerText ?? "";

//    //                prescItemInfoObj.DetailId = detailId;
//    //                prescItemInfoObj.DetailName = detailName;
//    //                prescItemInfoObj.DetailCount = detailCount;
//    //                prescItemInfoObj.DetailUnit = detailUnit;
//    //                prescItemInfoObj.DetailAmout = detailAmout;
//    //                prescItemInfoObj.DetailSpec = detailSpec;
//    //                prescItemInfoObj.DetailPrice = detailPrice;
  
//    //                response.Details.Add(prescItemInfoObj);
//    //            }
//    //        }

//    //        return response;
//    //    }



//    //    /// <summary>
//    //    /// 缴费
//    //    /// </summary>
//    //    [HttpPost]
//    //    [ActionName("ExePrescriptionPay")]
//    //    public ExePrescriptionPayResponse ExePrescriptionPay(ExePrescriptionPayRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("outpatient.pay");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.CardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        XmlNode clinicSeqNode = xmlDoc.CreateElement("clinicSeq");
//    //        clinicSeqNode.InnerText = request.ClinicSeq;
//    //        root.AppendChild(clinicSeqNode);

//    //        XmlNode orderIdNode = xmlDoc.CreateElement("orderId");
//    //        orderIdNode.InnerText = request.OrderId;
//    //        root.AppendChild(orderIdNode);

//    //        XmlNode tradeNoNode = xmlDoc.CreateElement("tradeNo");
//    //        tradeNoNode.InnerText = request.TransNo;
//    //        root.AppendChild(tradeNoNode);


//    //        XmlNode operatorIdNode = xmlDoc.CreateElement("operatorId");
//    //        operatorIdNode.InnerText = OpeartorId;
//    //        root.AppendChild(operatorIdNode);


//    //        XmlNode machineIdNode = xmlDoc.CreateElement("machineId");
//    //        machineIdNode.InnerText = request.MachineId;
//    //        root.AppendChild(machineIdNode);


//    //        XmlNode payAmoutNode = xmlDoc.CreateElement("payAmout");
//    //        payAmoutNode.InnerText = request.SumFee;
//    //        root.AppendChild(payAmoutNode);


//    //        XmlNode payModeNode = xmlDoc.CreateElement("payMode");
//    //        payModeNode.InnerText = PayModel;
//    //        root.AppendChild(payModeNode);


//    //        XmlNode payTimeNode = xmlDoc.CreateElement("payTime");
//    //        payTimeNode.InnerText = request.TransTime;
//    //        root.AppendChild(payTimeNode);

//    //        XmlNode prescriptionIdsNode = xmlDoc.CreateElement("prescriptionIds");
//    //        prescriptionIdsNode.InnerText = request.PrescNo;
//    //        root.AppendChild(prescriptionIdsNode);

//    //        XmlNode medicareSettleLogIdNode = xmlDoc.CreateElement("medicareSettleLogId");
//    //        medicareSettleLogIdNode.InnerText = request.MedicareSettleLogId;
//    //        root.AppendChild(medicareSettleLogIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 ExePrescriptionPay 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("ExePrescriptionPay", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var response = new ExePrescriptionPayResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            response.ResultCode = resultCode;
//    //            response.ResultDesc = resultDesc;
//    //            return response;
//    //        }

//    //        response.ResultCode = resultCode;
//    //        response.ResultDesc = resultDesc;
//    //        response.Remark = xmlDoc.SelectSingleNode("/message/res/remark")?.InnerText ?? "";
//    //        response.GuideInfo = xmlDoc.SelectSingleNode("/message/res/guideInfo")?.InnerText ?? "";
//    //        response.ReceiptId = xmlDoc.SelectSingleNode("/message/res/receiptId")?.InnerText ?? "";

//    //        return response;
//    //    }


//    //    /// <summary>
//    //    /// 取消医保结算
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("YBReturnCharges")]
//    //    public YBReturnChargesResponse YBReturnCharges(YBReturnChargesRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("outpatient.cancelMedicareSettle");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode medicareSettleCodeNode = xmlDoc.CreateElement("medicareSettleCode");
//    //        medicareSettleCodeNode.InnerText = request.MedicareSettleCode;
//    //        root.AppendChild(medicareSettleCodeNode);

//    //        XmlNode medicareSettleLogIdNode = xmlDoc.CreateElement("medicareSettleLogId");
//    //        medicareSettleLogIdNode.InnerText = request.MedicareSettleLogId;
//    //        root.AppendChild(medicareSettleLogIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 YBReturnCharges 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }
//    //        HospWsLogHelper.Log("YBReturnCharges", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new YBReturnChargesResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node == null ? "" : node.InnerText;

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node == null ? "" : node.InnerText;

//    //        if (resultCode != "0")
//    //        {
//    //            responseObj.ResultCode = resultCode;
//    //            responseObj.ResultDesc = resultDesc;
//    //            return responseObj;
//    //        }

//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;

//    //        return responseObj;
//    //    }


//    //    /// <summary>
//    //    /// 查询指定时间范围内的检验报告单列表
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    [HttpPost]
//    //    [ActionName("GetExamInfo")]
//    //    public GetExamInfoResponse GetExamInfo(GetExamInfoRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("lis.getReport");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode cardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        cardNoNode.InnerText = request.CardNo;
//    //        root.AppendChild(cardNoNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        XmlNode patientNoNode = xmlDoc.CreateElement("patientNo");
//    //        patientNoNode.InnerText = request.PatientNo;
//    //        root.AppendChild(patientNoNode);

//    //        XmlNode beginDateNode = xmlDoc.CreateElement("beginDate");
//    //        beginDateNode.InnerText = request.BeginDate;
//    //        root.AppendChild(beginDateNode);

//    //        XmlNode endDateNode = xmlDoc.CreateElement("endDate");
//    //        endDateNode.InnerText = request.EndDate;
//    //        root.AppendChild(endDateNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetExamInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }
//    //        HospWsLogHelper.Log("GetExamInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new GetExamInfoResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            responseObj.ResultCode = resultCode;
//    //            responseObj.ResultDesc = resultDesc;
//    //            return responseObj;
//    //        }

//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;
//    //        responseObj.ExamList = new List<GetExamInfoResponse.ExamInfo>();
//    //        var nodes = xmlDoc.SelectNodes("/message/res/report");
//    //        if (nodes != null)
//    //            foreach (XmlNode xNode in nodes)
//    //            {
//    //                var examInfoObj = new GetExamInfoResponse.ExamInfo();
//    //                var examId = xNode.SelectSingleNode("inspectionId")?.InnerText ?? "";
//    //                var examName = xNode.SelectSingleNode("inspectionName")?.InnerText ?? "";
//    //                var examDate = xNode.SelectSingleNode("inspectionDate")?.InnerText ?? "";
//    //                var status = xNode.SelectSingleNode("status")?.InnerText ?? "";
//    //                var deptName = xNode.SelectSingleNode("deptName")?.InnerText ?? "";
//    //                var patientAge = xNode.SelectSingleNode("patientAge")?.InnerText ?? "";
//    //                var patientName = xNode.SelectSingleNode("patientName")?.InnerText ?? "";
//    //                var patientSex = xNode.SelectSingleNode("gender")?.InnerText ?? "";
//    //                var clinicalDiagnosis = xNode.SelectSingleNode("clinicalDiagnosis")?.InnerText ?? "";
//    //                var reportDoctorName = xNode.SelectSingleNode("reportDoctorName")?.InnerText ?? "";


//    //                examInfoObj.ExamID = examId;
//    //                examInfoObj.ExamName = examName;
//    //                examInfoObj.ExamDate = examDate;
//    //                examInfoObj.DeptName = deptName;
//    //                examInfoObj.PatientAge = patientAge;
//    //                examInfoObj.PatientName = patientName;
//    //                examInfoObj.PatientSex = patientSex;
//    //                examInfoObj.Status = status;
//    //                examInfoObj.ClinicalDiagnosis = clinicalDiagnosis;
//    //                examInfoObj.ReportDoctorName = reportDoctorName;

//    //                responseObj.ExamList.Add(examInfoObj);
//    //            }

//    //        return responseObj;
//    //    }

//    //    /// <summary>
//    //    /// 按检验报告单号查询检验项目明细
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetExamDetail")]
//    //    public GetExamDetailResponse GetExamDetail(GetExamDetailRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();
//    //        var xmlDoc = GetMessageDoc("lis.getReportItem");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode inspectionIdNode = xmlDoc.CreateElement("inspectionId");
//    //        inspectionIdNode.InnerText = request.InspectionId;
//    //        root.AppendChild(inspectionIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetExamDetail 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetExamDetail", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new GetExamDetailResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            responseObj.ResultCode = resultCode;
//    //            responseObj.ResultDesc = resultDesc;
//    //            return responseObj;
//    //        }

//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;
//    //        responseObj.ExamItemList = new List<GetExamDetailResponse.ExamItemInfo>();
//    //        var nodes = xmlDoc.SelectNodes("/message/res/item");
//    //        if (nodes != null)
//    //            foreach (XmlNode xNode in nodes)
//    //            {
//    //                var examItemInfoObj = new GetExamDetailResponse.ExamItemInfo();
//    //                var itemId = xNode.SelectSingleNode("itemId")?.InnerText ?? "";
//    //                var itemName = xNode.SelectSingleNode("itemName")?.InnerText ?? "";
//    //                var orderNo = xNode.SelectSingleNode("orderNo")?.InnerText ?? "";
//    //                var testResult = xNode.SelectSingleNode("testResult")?.InnerText ?? "";
//    //                var unit = xNode.SelectSingleNode("unit")?.InnerText ?? "";
//    //                var itemRef = xNode.SelectSingleNode("itemRef")?.InnerText ?? "";
//    //                var quaResult = xNode.SelectSingleNode("quaResult")?.InnerText ?? "";
//    //                var testDate = xNode.SelectSingleNode("testDate")?.InnerText ?? "";

//    //                examItemInfoObj.ItemId = itemId;
//    //                examItemInfoObj.ItemName = itemName;
//    //                examItemInfoObj.OrderNo = orderNo;
//    //                examItemInfoObj.TestResult = testResult;
//    //                examItemInfoObj.Unit = unit;
//    //                examItemInfoObj.ItemRef = itemRef;
//    //                examItemInfoObj.QuaResult = quaResult;
//    //                examItemInfoObj.TestDate = testDate;

//    //                responseObj.ExamItemList.Add(examItemInfoObj);
//    //            }

//    //        return responseObj;
//    //    }


//    //    /// <summary>
//    //    /// 查询指定时间范围内的检查报告单列表
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    [HttpPost]
//    //    [ActionName("GetInspectionInfo")]
//    //    public GetInspectionInfoResponse GetInspectionInfo(GetInspectionInfoRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("pacs.getReport");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode cardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        cardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(cardNoNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        XmlNode patientNoNode = xmlDoc.CreateElement("patientNo");
//    //        patientNoNode.InnerText = request.PatientNo;
//    //        root.AppendChild(patientNoNode);


//    //        XmlNode beginDateNode = xmlDoc.CreateElement("beginDate");
//    //        beginDateNode.InnerText = request.BeginDate;
//    //        root.AppendChild(beginDateNode);

//    //        XmlNode endDateNode = xmlDoc.CreateElement("endDate");
//    //        endDateNode.InnerText = request.EndDate;
//    //        root.AppendChild(endDateNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetInspectionInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }
//    //        HospWsLogHelper.Log("GetInspectionInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new GetInspectionInfoResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            responseObj.ResultCode = resultCode;
//    //            responseObj.ResultDesc = resultDesc;
//    //            return responseObj;
//    //        }

//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;
//    //        responseObj.InspectionList = new List<GetInspectionInfoSubInspectionInfoResponse>();
//    //        var nodes = xmlDoc.SelectNodes("/message/res/report");
//    //        if (nodes != null)
//    //            foreach (XmlNode xNode in nodes)
//    //            {
//    //                var examInfoObj = new GetInspectionInfoSubInspectionInfoResponse();
//    //                var examId = xNode.SelectSingleNode("reportId")?.InnerText ?? "";
//    //                var examName = xNode.SelectSingleNode("reportTitle")?.InnerText ?? "";
//    //                var examDate = xNode.SelectSingleNode("reportDate")?.InnerText ?? "";
//    //                var status = xNode.SelectSingleNode("status")?.InnerText ?? "";
//    //                var patientAge = xNode.SelectSingleNode("patientAge")?.InnerText ?? "";
//    //                var patientName = xNode.SelectSingleNode("patientName")?.InnerText ?? "";
//    //                var patientSex = xNode.SelectSingleNode("gender")?.InnerText ?? "";
//    //                var clinicalDiagnosis = xNode.SelectSingleNode("clinicalDiagnosis")?.InnerText ?? "";

//    //                examInfoObj.ReportId = examId;
//    //                examInfoObj.ReportTitle = examName;
//    //                examInfoObj.ReportDate = examDate;
//    //                examInfoObj.PatientAge = patientAge;
//    //                examInfoObj.PatientName = patientName;
//    //                examInfoObj.Gender = patientSex;
//    //                examInfoObj.Status = status;
//    //                examInfoObj.ClinicalDiagnosis = clinicalDiagnosis;

//    //                responseObj.InspectionList.Add(examInfoObj);
//    //            }

//    //        return responseObj;
//    //    }

//    //    /// <summary>
//    //    /// 按健康卡号查询指定时间范围内的检查报告单列表
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetInspectionDetail")]
//    //    public GetInspectionDetailResponse GetInspectionDetail(GetInspectionDetailRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();
//    //        var xmlDoc = GetMessageDoc("pacs.getReportDetail");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode inspectionIdNode = xmlDoc.CreateElement("reportId");
//    //        inspectionIdNode.InnerText = request.ReportId;
//    //        root.AppendChild(inspectionIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetInspectionDetail 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetInspectionDetail", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new GetInspectionDetailResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode != "0")
//    //        {
//    //            responseObj.ResultCode = resultCode;
//    //            responseObj.ResultDesc = resultDesc;
//    //            return responseObj;
//    //        }

//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;


//    //        var deptName = xmlDoc.SelectSingleNode("/message/res/deptName")?.InnerText ?? "";
//    //        var reportDoctorName = xmlDoc.SelectSingleNode("/message/res/reportDoctorName")?.InnerText ?? "";
//    //        var checkParts = xmlDoc.SelectSingleNode("/message/res/checkParts")?.InnerText ?? "";
//    //        var examination = xmlDoc.SelectSingleNode("/message/res/examination")?.InnerText ?? "";
//    //        var diagnosis = xmlDoc.SelectSingleNode("/message/res/diagnosis")?.InnerText ?? "";
//    //        var checkDoctorName = xmlDoc.SelectSingleNode("/message/res/checkDoctorName")?.InnerText ?? "";
//    //        var examinationDate = xmlDoc.SelectSingleNode("/message/res/examinationDate")?.InnerText ?? "";

//    //        responseObj.DeptName = deptName;
//    //        responseObj.ReportDoctorName = reportDoctorName;
//    //        responseObj.CheckParts = checkParts;
//    //        responseObj.Examination = examination;
//    //        responseObj.Diagnosis = diagnosis;
//    //        responseObj.CheckDoctorName = checkDoctorName;
//    //        responseObj.ExaminationDate = examinationDate;

//    //        return responseObj;
//    //    }

//    //    /// <summary>
//    //    /// 获取用户住院历史信息,健康卡号必填
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetInPatientHis")]
//    //    public GetInPatientHisResponse GetInPatientHis(GetInPatientHisRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("baseinfo.getInpatientInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.CardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode idCardNoNode = xmlDoc.CreateElement("idCardNo");
//    //        idCardNoNode.InnerText = request.IdenNo;
//    //        root.AppendChild(idCardNoNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);


//    //        XmlNode patientNoNode = xmlDoc.CreateElement("patientNo");
//    //        patientNoNode.InnerText = request.PatientNo;
//    //        root.AppendChild(patientNoNode);

//    //        XmlNode inpatientIdNode = xmlDoc.CreateElement("inpatientId");
//    //        inpatientIdNode.InnerText = request.InpatientId;
//    //        root.AppendChild(inpatientIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetInPatientHis 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetInPatientHis", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new GetInPatientHisResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode == "0")
//    //        {
//    //            responseObj.InPatientHisList = new List<GetInPatientHisResponse.InPatientHis>();
//    //            var nodes = xmlDoc.SelectNodes("/message/res/recordInfo");

//    //            if (nodes != null)
//    //            {
//    //                foreach (XmlNode xNode in nodes)
//    //                {
//    //                    var inPatientHisObj = new GetInPatientHisResponse.InPatientHis();
//    //                    var patientId = xNode.SelectSingleNode("patientId")?.InnerText ?? "";
//    //                    var hospitalId = xNode.SelectSingleNode("hospitalId")?.InnerText ?? "";
//    //                    var patientName = xNode.SelectSingleNode("patientName")?.InnerText ?? "";
//    //                    var inTime = xNode.SelectSingleNode("inTime")?.InnerText ?? "";
//    //                    var outTime = xNode.SelectSingleNode("outTime")?.InnerText ?? "";
//    //                    var inDays = xNode.SelectSingleNode("inDays")?.InnerText ?? "";
//    //                    var patientFlag = xNode.SelectSingleNode("patientFlag")?.InnerText ?? "";
//    //                    var totalAmout = xNode.SelectSingleNode("totalAmout")?.InnerText ?? "";
//    //                    var prepayAmout = xNode.SelectSingleNode("prepayAmout")?.InnerText ?? "";
//    //                    var balance = xNode.SelectSingleNode("balance")?.InnerText ?? "";
//    //                    var settled = xNode.SelectSingleNode("settled")?.InnerText ?? "";
//    //                    var inpatientId = xNode.SelectSingleNode("inpatientId")?.InnerText ?? "";
//    //                    var idCardNo = xNode.SelectSingleNode("idCardNo")?.InnerText ?? "";
//    //                    var deptId = xNode.SelectSingleNode("deptId")?.InnerText ?? "";
//    //                    var deptName = xNode.SelectSingleNode("deptName")?.InnerText ?? "";
//    //                    var bedNo = xNode.SelectSingleNode("bedNo")?.InnerText ?? "";
//    //                    var chargeDoctorId = xNode.SelectSingleNode("chargeDoctorId")?.InnerText ?? "";
//    //                    var chargeDoctorName = xNode.SelectSingleNode("chargeDoctorName")?.InnerText ?? "";
//    //                    var chargeNurseId = xNode.SelectSingleNode("chargeNurseId")?.InnerText ?? "";
//    //                    var chargeNurseName = xNode.SelectSingleNode("chargeNurseName")?.InnerText ?? "";
//    //                    var gender = xNode.SelectSingleNode("gender")?.InnerText ?? "";
//    //                    var birthday = xNode.SelectSingleNode("birthday")?.InnerText ?? "";
//    //                    var address = xNode.SelectSingleNode("address")?.InnerText ?? "";
//    //                    var connectPhone = xNode.SelectSingleNode("connectPhone")?.InnerText ?? "";
//    //                    var relatePerson = xNode.SelectSingleNode("relatePerson")?.InnerText ?? "";
//    //                    var relation = xNode.SelectSingleNode("relation")?.InnerText ?? "";
//    //                    var relatePhone = xNode.SelectSingleNode("relatePhone")?.InnerText ?? "";
//    //                    var remark = xNode.SelectSingleNode("remark")?.InnerText ?? "";
//    //                    var patientNo = xNode.SelectSingleNode("patientNo")?.InnerText ?? "";

//    //                    inPatientHisObj.PatientId = patientId;
//    //                    inPatientHisObj.HospitalId = hospitalId;
//    //                    inPatientHisObj.PatientName = patientName;
//    //                    inPatientHisObj.InTime = inTime;
//    //                    inPatientHisObj.OutTime = outTime;
//    //                    inPatientHisObj.InDays = inDays;
//    //                    inPatientHisObj.PatientFlag = patientFlag;
//    //                    inPatientHisObj.TotalAmout = totalAmout;
//    //                    inPatientHisObj.PrepayAmout = prepayAmout;
//    //                    inPatientHisObj.Balance = balance;
//    //                    inPatientHisObj.Settled = settled;
//    //                    inPatientHisObj.InpatientId = inpatientId;
//    //                    inPatientHisObj.IdCardNo = idCardNo;
//    //                    inPatientHisObj.DeptId = deptId;
//    //                    inPatientHisObj.DeptName = deptName;
//    //                    inPatientHisObj.BedNo = bedNo;
//    //                    inPatientHisObj.ChargeDoctorId = chargeDoctorId;
//    //                    inPatientHisObj.ChargeDoctorName = chargeDoctorName;
//    //                    inPatientHisObj.ChargeNurseId = chargeNurseId;
//    //                    inPatientHisObj.ChargeNurseName = chargeNurseName;
//    //                    inPatientHisObj.Gender = gender;
//    //                    inPatientHisObj.Birthday = birthday;
//    //                    inPatientHisObj.Address = address;
//    //                    inPatientHisObj.ConnectPhone = connectPhone;
//    //                    inPatientHisObj.RelatePerson = relatePerson;
//    //                    inPatientHisObj.Relation = relation;
//    //                    inPatientHisObj.RelatePhone = relatePhone;
//    //                    inPatientHisObj.Remark = remark;
//    //                    inPatientHisObj.PatientNo = patientNo;
//    //                    responseObj.InPatientHisList.Add(inPatientHisObj);
//    //                }
//    //            }
//    //        }

//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;

//    //        return responseObj;
//    //    }


//    //    /// <summary>
//    //    /// 通过记账号查询患者收费汇总，分三块：预交金总额（需与“患者预交金查询”接口一致）、患者费用总额、费用分类（费用分类总额需与“患者费用总额一致”）
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetInpBillList")]
//    //    public GetInpBillListResponse GetInpBillList(GetInpBillListRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("inpatient.getTotalCost");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode inpatientIdNode = xmlDoc.CreateElement("inpatientId");
//    //        inpatientIdNode.InnerText = request.InpatientId;
//    //        root.AppendChild(inpatientIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetInpBillList 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetInpBillList", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new GetInpBillListResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode == "0")
//    //        {
//    //            responseObj.TotalAmout = xmlDoc.SelectSingleNode("/message/res/totalAmout")?.InnerText ?? "";
//    //            responseObj.PrepayAmout = xmlDoc.SelectSingleNode("/message/res/prepayAmout")?.InnerText ?? "";
//    //            responseObj.ValidPrepayAmout = xmlDoc.SelectSingleNode("/message/res/validPrepayAmout")?.InnerText ?? "";
//    //            responseObj.Unsettled = xmlDoc.SelectSingleNode("/message/res/unsettled")?.InnerText ?? "";
                
//    //            responseObj.BillInfoList = new List<GetInpBillListResponse.BillInfo>();


//    //            var nodes = xmlDoc.SelectNodes("/message/res/feeInfo");

//    //            if (nodes != null)
//    //            {
//    //                foreach (XmlNode xNode in nodes)
//    //                {
//    //                    var billInfoObj = new GetInpBillListResponse.BillInfo();
//    //                    var typeCode = xNode.SelectSingleNode("typeCode")?.InnerText ?? "";
//    //                    var typeName = xNode.SelectSingleNode("typeName")?.InnerText ?? "";
//    //                    var typeAmout = xNode.SelectSingleNode("typeAmout")?.InnerText ?? "";

//    //                    billInfoObj.TypeCode = typeCode;
//    //                    billInfoObj.TypeName = typeName;
//    //                    billInfoObj.TypeAmout = typeAmout;

//    //                    responseObj.BillInfoList.Add(billInfoObj);
//    //                }
//    //            }
//    //        }

//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;

//    //        return responseObj;
//    //    }


//    //    /// <summary>
//    //    /// 通过调用本接口查询患者住院期间指定某一天的费用明细清单
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetCategoryBillList")]
//    //    public GetCategoryBillListResponse GetCategoryBillList(GetCategoryBillListRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("inpatient.getDailyBill");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode inpatientIdNode = xmlDoc.CreateElement("inpatientId");
//    //        inpatientIdNode.InnerText = request.InpatientId;
//    //        root.AppendChild(inpatientIdNode);

//    //        XmlNode billDateNode = xmlDoc.CreateElement("billDate");
//    //        billDateNode.InnerText = request.BillDate;
//    //        root.AppendChild(billDateNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetCategoryBillList 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetCategoryBillList", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new GetCategoryBillListResponse();
//    //        responseObj.CategoryBillList = new List<GetCategoryBillListResponse.CategoryBill>();
//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode == "0")
//    //        {
//    //            responseObj.TotalAmout = xmlDoc.SelectSingleNode("/message/res/totalAmout")?.InnerText ?? "";
//    //            responseObj.PrepayAmout = xmlDoc.SelectSingleNode("/message/res/prepayAmout")?.InnerText ?? "";
//    //            responseObj.Unsettled = xmlDoc.SelectSingleNode("/message/res/unsettled")?.InnerText ?? "";
//    //            responseObj.Balance = xmlDoc.SelectSingleNode("/message/res/balance")?.InnerText ?? "";
//    //            responseObj.Settled = xmlDoc.SelectSingleNode("/message/res/settled")?.InnerText ?? "";
//    //            responseObj.BillAmout = xmlDoc.SelectSingleNode("/message/res/billAmout")?.InnerText ?? "";
//    //            responseObj.StartMxseq = xmlDoc.SelectSingleNode("/message/res/startMxseq")?.InnerText ?? "";
//    //            responseObj.EndMxseq = xmlDoc.SelectSingleNode("/message/res/endMxseq")?.InnerText ?? "";
//    //            responseObj.Remark = xmlDoc.SelectSingleNode("/message/res/remark")?.InnerText ?? "";

//    //            var nodes = xmlDoc.SelectNodes("/message/res/feeInfo");

//    //            if (nodes != null)
//    //            {
//    //                foreach (XmlNode xNode in nodes)
//    //                {
//    //                    var categoryBillObj = new GetCategoryBillListResponse.CategoryBill();
//    //                    var categoryId = xNode.SelectSingleNode("typeCode")?.InnerText ?? "";
//    //                    var categoryName = xNode.SelectSingleNode("typeName")?.InnerText ?? "";
//    //                    var categoryFee = xNode.SelectSingleNode("typeAmout")?.InnerText ?? "";

//    //                    categoryBillObj.CategoryId = categoryId;
//    //                    categoryBillObj.CategoryName = categoryName;
//    //                    categoryBillObj.CategoryFee = categoryFee;
//    //                    responseObj.CategoryBillList.Add(categoryBillObj);
//    //                }
//    //            }
//    //        }

//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;
//    //        return responseObj;
//    //    }

//    //    /// <summary>
//    //    /// 获取住院分类费用明细
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetCategoryBillDetail")]
//    //    public GetCategoryBillDetailResponse GetCategoryBillDetail(GetCategoryBillDetailRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("inpatient.getDetailCost");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode inpatientIdNode = xmlDoc.CreateElement("inpatientId");
//    //        inpatientIdNode.InnerText = request.InPatientId;
//    //        root.AppendChild(inpatientIdNode);

//    //        XmlNode typeCodeNode = xmlDoc.CreateElement("typeCode");
//    //        typeCodeNode.InnerText = request.TypeCode;
//    //        root.AppendChild(typeCodeNode);

//    //        XmlNode billDateNode = xmlDoc.CreateElement("billDate");
//    //        billDateNode.InnerText = request.BillDate;
//    //        root.AppendChild(billDateNode);

//    //        XmlNode startMxseqNode = xmlDoc.CreateElement("startMxseq");
//    //        startMxseqNode.InnerText = request.StartMxseq;
//    //        root.AppendChild(startMxseqNode);

//    //        XmlNode endMxseqNode = xmlDoc.CreateElement("endMxseq");
//    //        endMxseqNode.InnerText = request.StartMxseq;
//    //        root.AppendChild(endMxseqNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetCategoryBillDetailResponse 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetCategoryBillDetailResponse", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new GetCategoryBillDetailResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode == "0")
//    //        {
//    //            responseObj.ItemList = new List<GetCategoryBillDetailResponse.ItemInfo>();
//    //            var nodes = xmlDoc.SelectNodes("/message/res/recordInfo");

//    //            if (nodes != null)
//    //            {
//    //                foreach (XmlNode xNode in nodes)
//    //                {
//    //                    var itemInfoObj = new GetCategoryBillDetailResponse.ItemInfo();
//    //                    var itemCode = xNode.SelectSingleNode("detailId")?.InnerText ?? "";
//    //                    var itemName = xNode.SelectSingleNode("detailName")?.InnerText ?? "";
//    //                    var itemSpec = xNode.SelectSingleNode("detailSpec")?.InnerText ?? "";
//    //                    var itemUnit = xNode.SelectSingleNode("detailUnit")?.InnerText ?? "";
//    //                    var amount = xNode.SelectSingleNode("detailCount")?.InnerText ?? "";
//    //                    var itemPrice = xNode.SelectSingleNode("detailPrice")?.InnerText ?? "";
//    //                    var costs = xNode.SelectSingleNode("detailAmout")?.InnerText ?? "";


//    //                    itemInfoObj.ItemCode = itemCode;
//    //                    itemInfoObj.ItemName = itemName;
//    //                    itemInfoObj.ItemSpec = itemSpec;
//    //                    itemInfoObj.ItemUnit = itemUnit;
//    //                    itemInfoObj.Amount = amount;
//    //                    itemInfoObj.ItemPrice = itemPrice;
//    //                    itemInfoObj.Costs = costs;
//    //                    responseObj.ItemList.Add(itemInfoObj);
//    //                }
//    //            }
//    //        }

//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;

//    //        return responseObj;
//    //    }

//    //    /// <summary>
//    //    /// 查询预交金余额
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetIcCardHolderState")]
//    //    public GetIcCardHolderStateResponse GetIcCardHolderState(GetIcCardHolderStateRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("inpatient.getPrepayRecord");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode cardNoNode = xmlDoc.CreateElement("inpatientId");
//    //        cardNoNode.InnerText = request.InpatientId;
//    //        root.AppendChild(cardNoNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetIcCardHolderState 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }
            
//    //        HospWsLogHelper.Log("GetIcCardHolderState", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new GetIcCardHolderStateResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        if (resultCode == "0")
//    //        {
//    //            responseObj.PrepayList = new List<GetIcCardHolderStateResponse.PrepayItem>();
//    //            var nodes = xmlDoc.SelectNodes("/message/res/recordInfo");

//    //            if (nodes != null)
//    //            {
//    //                foreach (XmlNode xNode in nodes)
//    //                {
//    //                    var prepayInfoObj = new GetIcCardHolderStateResponse.PrepayItem();
//    //                    var payTime = xNode.SelectSingleNode("payTime")?.InnerText ?? "";
//    //                    var payAmout = xNode.SelectSingleNode("payAmout")?.InnerText ?? "";
//    //                    var payMode = xNode.SelectSingleNode("payMode")?.InnerText ?? "";
//    //                    var payFlag = xNode.SelectSingleNode("payFlag")?.InnerText ?? "";
//    //                    var remark = xNode.SelectSingleNode("remark")?.InnerText ?? "";

//    //                    prepayInfoObj.PayTime = payTime;
//    //                    prepayInfoObj.PayAmout = payAmout;
//    //                    prepayInfoObj.PayMode = payMode;
//    //                    prepayInfoObj.PayFlag = payFlag;
//    //                    prepayInfoObj.Remark = remark;
//    //                    responseObj.PrepayList.Add(prepayInfoObj);
//    //                }
//    //            }
//    //        }

//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;

//    //        return responseObj;
//    //    }

//    //    /// <summary>
//    //    /// 缴预交金
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("IcCardTranToPrepay")]
//    //    public IcCardTranToPrepayResponse IcCardTranToPrepay(IcCardTranToPrepayRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("inpatient.doPrepay");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode orderIdNode = xmlDoc.CreateElement("orderId");
//    //        orderIdNode.InnerText = request.OrderId;
//    //        root.AppendChild(orderIdNode);

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("hospitalId");
//    //        hospitalIdNode.InnerText = HospitalId;
//    //        root.AppendChild(hospitalIdNode);

//    //        XmlNode idCardNoNode = xmlDoc.CreateElement("idCardNo");
//    //        idCardNoNode.InnerText = request.IdCardNo;
//    //        root.AppendChild(idCardNoNode);

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.HealthCardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);

//    //        XmlNode inpatientIdNode = xmlDoc.CreateElement("inpatientId");
//    //        inpatientIdNode.InnerText = request.InpatientId;
//    //        root.AppendChild(inpatientIdNode);

//    //        XmlNode healorderTimeNode = xmlDoc.CreateElement("orderTime");
//    //        healorderTimeNode.InnerText = request.OrderTime;
//    //        root.AppendChild(healorderTimeNode);

//    //        XmlNode tradeNoNode = xmlDoc.CreateElement("tradeNo");
//    //        tradeNoNode.InnerText = request.TradeNo;
//    //        root.AppendChild(tradeNoNode);

//    //        XmlNode operatorIdNode = xmlDoc.CreateElement("operatorId");
//    //        operatorIdNode.InnerText = OpeartorId;
//    //        root.AppendChild(operatorIdNode);

//    //        XmlNode machineIdNode = xmlDoc.CreateElement("machineId");
//    //        machineIdNode.InnerText = request.MachineId;
//    //        root.AppendChild(machineIdNode);

//    //        XmlNode payAmoutNode = xmlDoc.CreateElement("payAmout");
//    //        payAmoutNode.InnerText = request.PayAmout;
//    //        root.AppendChild(payAmoutNode);

//    //        XmlNode payModeNode = xmlDoc.CreateElement("payMode");
//    //        payModeNode.InnerText = PayModel;
//    //        root.AppendChild(payModeNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 IcCardTranToPrepay 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("IcCardTranToPrepay", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new IcCardTranToPrepayResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";
            
//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;
//    //        if (responseObj.ResultCode == "0")
//    //        {
//    //            responseObj.ReceiptId = xmlDoc.SelectSingleNode("/message/res/receiptId")?.InnerText ?? "";
//    //            responseObj.Balance = xmlDoc.SelectSingleNode("/message/res/balance")?.InnerText ?? "";
//    //            responseObj.Remark = xmlDoc.SelectSingleNode("/message/res/remark")?.InnerText ?? "";
//    //        }

//    //        return responseObj;
//    //    }
//    //    /// <summary>
//    //    /// 住院患者做业务操作（例:预交、清账）前的有效性检测，检测通过后再允许业务功能的继续执行
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("OperationCheck")]
//    //    public OperationCheckResponse OperationCheck(OperationCheckRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("inpatient.operationCheck");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode orderIdNode = xmlDoc.CreateElement("inpatienId");
//    //        orderIdNode.InnerText = request.InpatientId;
//    //        root.AppendChild(orderIdNode);

//    //        XmlNode hospitalIdNode = xmlDoc.CreateElement("operType");
//    //        hospitalIdNode.InnerText = request.OperType;
//    //        root.AppendChild(hospitalIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 OperationCheck 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("OperationCheck", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new OperationCheckResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;
//    //        if (responseObj.ResultCode == "0")
//    //        {
//    //            responseObj.Remark = xmlDoc.SelectSingleNode("/message/res/remark")?.InnerText ?? "";
//    //        }

//    //        return responseObj;
//    //    }
//    //    /// <summary>
//    //    /// 得到就诊队列
//    //    /// </summary>       
//    //    [HttpPost]
//    //    [ActionName("GetQueueInfo")]
//    //    public GetQueueInfoResponse GetQueueInfo(GetQueueInfoRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("support.getRegisterInfo");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode healthCardNoNode = xmlDoc.CreateElement("healthCardNo");
//    //        healthCardNoNode.InnerText = request.CardNo;
//    //        root.AppendChild(healthCardNoNode);

//    //        XmlNode clinicSeqNode = xmlDoc.CreateElement("clinicSeq");
//    //        clinicSeqNode.InnerText = request.ClinicSeq;
//    //        root.AppendChild(clinicSeqNode);


//    //        XmlNode patientIdNode = xmlDoc.CreateElement("patientId");
//    //        patientIdNode.InnerText = request.PatientId;
//    //        root.AppendChild(patientIdNode);


//    //        XmlNode orderIdNode = xmlDoc.CreateElement("orderId");
//    //        orderIdNode.InnerText = request.OrderId;
//    //        root.AppendChild(orderIdNode);


//    //        XmlNode orderDateNode = xmlDoc.CreateElement("orderDate");
//    //        orderDateNode.InnerText = request.QueueDate;
//    //        root.AppendChild(orderDateNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetQueueInfo 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetQueueInfo", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new GetQueueInfoResponse();

//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;
//    //        responseObj.QueueList = new List<GetQueueInfoResponse.QueueInfo>();
//    //        if (responseObj.ResultCode == "0")
//    //        {
//    //            var nodes = xmlDoc.SelectNodes("/message/res/orderInfo");
//    //            if (nodes != null)
//    //            {
//    //                foreach (XmlNode xNode in nodes)
//    //                {
//    //                    GetQueueInfoResponse.QueueInfo queueInfo = new GetQueueInfoResponse.QueueInfo
//    //                    {
//    //                        ClinicSeq = xNode.SelectSingleNode("clinicSeq")?.InnerText ?? "",
//    //                        State = xNode.SelectSingleNode("status")?.InnerText ?? "",
//    //                        DeptId = xNode.SelectSingleNode("deptId")?.InnerText ?? "",
//    //                        DoctorId = xNode.SelectSingleNode("doctorId")?.InnerText ?? "",
//    //                        DeptName = xNode.SelectSingleNode("deptName")?.InnerText ?? "",
//    //                        DoctorName = xNode.SelectSingleNode("doctorName")?.InnerText ?? "",
//    //                        RegNo = xNode.SelectSingleNode("queueNo")?.InnerText ?? "",
//    //                        ForeNum = xNode.SelectSingleNode("waitingCount")?.InnerText ?? "",
//    //                        WaitingTime = xNode.SelectSingleNode("waitingTime")?.InnerText ?? "",
//    //                        InfoTime = xNode.SelectSingleNode("infoTime")?.InnerText ?? "",
//    //                        VisitTime = xNode.SelectSingleNode("visitTime")?.InnerText ?? "",
//    //                        Remark = xNode.SelectSingleNode("remark")?.InnerText ?? "",
//    //                    };
//    //                    responseObj.QueueList.Add(queueInfo);
//    //                }
//    //            }
//    //            //responseObj.Remark = xmlDoc.SelectSingleNode("/message/res/remark")?.InnerText ?? "";
//    //        }

//    //        return responseObj;
//    //    }

//    //    /// <summary>
//    //    /// 用于获取项目执行指引单
//    //    /// </summary>
//    //    /// <param name="request"></param>
//    //    /// <returns></returns>
//    //    [HttpPost]
//    //    [ActionName("GetGuideList")]
//    //    public GetGuideListResponse GetGuideList(GetGuideListRequest request)
//    //    {
//    //        var wsClient = WsClientFactory.GetHisWsSoapClient();

//    //        var xmlDoc = GetMessageDoc("support.getGuideList");
//    //        XmlNode root = xmlDoc.CreateElement("req");

//    //        XmlNode clinicSeqNode = xmlDoc.CreateElement("clinicSeq");
//    //        clinicSeqNode.InnerText = request.ClinicSeq;
//    //        root.AppendChild(clinicSeqNode);

//    //        XmlNode receiptIdNode = xmlDoc.CreateElement("receiptId ");
//    //        receiptIdNode.InnerText = request.ReceiptId;
//    //        root.AppendChild(receiptIdNode);

//    //        xmlDoc.FirstChild.AppendChild(root);

//    //        var requestXml = xmlDoc.InnerXml;

//    //        var responseXml = "";
//    //        try
//    //        {
//    //            responseXml = wsClient.AcceptMessage(requestXml);
//    //            wsClient.Close();
//    //        }
//    //        catch (Exception ex)
//    //        {
//    //            wsClient.Abort();
//    //            Logger.ErrorFormat("调用 GetGuideList 失败，信息：{0}", JsonConvert.SerializeObject(ex));
//    //            throw;
//    //        }

//    //        HospWsLogHelper.Log("GetGuideList", requestXml, responseXml);

//    //        xmlDoc = new XmlDocument();
//    //        xmlDoc.LoadXml(responseXml);

//    //        var responseObj = new GetGuideListResponse();
//    //        responseObj.Guides = new List<GetGuideListResponse.GuideInfo>();
//    //        var node = xmlDoc.SelectSingleNode("/message/res/resultCode");
//    //        var resultCode = node?.InnerText ?? "";

//    //        node = xmlDoc.SelectSingleNode("/message/res/resultDesc");
//    //        var resultDesc = node?.InnerText ?? "";

//    //        responseObj.ResultCode = resultCode;
//    //        responseObj.ResultDesc = resultDesc;
//    //        if (responseObj.ResultCode == "0")
//    //        {
//    //            var nodes = xmlDoc.SelectNodes("/message/res/guideInfo");

//    //            if (nodes != null)
//    //            {
//    //                foreach (XmlNode xNode in nodes)
//    //                {
//    //                    var guideInfo = new GetGuideListResponse.GuideInfo()
//    //                    {
//    //                        ExecDeptId = xNode.SelectSingleNode("execDeptId")?.InnerText ?? "",
//    //                        ExecDeptName = xNode.SelectSingleNode("execDeptName")?.InnerText ?? "",
//    //                        ExecDeptLocation = xNode.SelectSingleNode("execDeptLocation")?.InnerText ?? "",
//    //                        ExecDesc = xNode.SelectSingleNode("execDesc")?.InnerText ?? "",
//    //                        Reamrk = xNode.SelectSingleNode("remark")?.InnerText ?? "",
//    //                        ItemName = xNode.SelectSingleNode("itemName")?.InnerText ?? ""
//    //                    };

//    //                    responseObj.Guides.Add(guideInfo);
//    //                }
//    //            }
//    //        }

//    //        return responseObj;
//    //    }
//    //}

//    public class ScheduleInfoComparer : IComparer<GetScheduleInfoResponse.ScheduleInfo>
//    {
//        public int Compare(GetScheduleInfoResponse.ScheduleInfo x, GetScheduleInfoResponse.ScheduleInfo y)
//        {
//            var rtn = String.Compare(x.RegDate, y.RegDate, StringComparison.Ordinal);
//            if (rtn == 0)
//            {
//                if (x.TotalCount == "不限号" && y.TotalCount != "不限号")
//                {
//                    return -1;
//                }
//                if (x.TotalCount != "不限号" && y.TotalCount == "不限号")
//                {
//                    return 1;
//                }

//                if (x.LeaveCount.ToInt32OrDefault() > 0 && y.LeaveCount.ToInt32OrDefault() <= 0)
//                {
//                    return -1;
//                }
//                if (x.LeaveCount.ToInt32OrDefault() <= 0 && y.LeaveCount.ToInt32OrDefault() > 0)
//                {
//                    return 1;
//                }

//                rtn = String.Compare(x.StartTime, y.StartTime, StringComparison.Ordinal);
//                //if (rtn == 0)
//                //{
//                //    var titles = new[] { "主任医师", "副主任医师", "主治医师", "医师" };

//                //    rtn = titles.IndexOf(x.Title).CompareTo(titles.IndexOf(y.Title));
//                //}
//            }
//            return rtn;
//        }
//    }
//}